diff --git a/elytron/pom.xml b/elytron/pom.xml
index 98b814db7b3..a29f7967d24 100644
--- a/elytron/pom.xml
+++ b/elytron/pom.xml
@@ -344,6 +344,13 @@
wildfly-openssl-windows-x86_64
test
+
+
+ org.jmockit
+ jmockit
+ test
+
+
@@ -390,7 +397,7 @@
maven-surefire-plugin
false
- ${surefire.jacoco.args} ${modular.jdk.args} -Dorg.wildfly.extension.elytron.restore-default-ssl-context=true -Dauthconfigprovider.factory=org.wildfly.security.auth.jaspi.ElytronAuthConfigFactory
+ -javaagent:${settings.localRepository}/org/jmockit/jmockit/${version.org.jmockit}/jmockit-${version.org.jmockit}.jar ${surefire.jacoco.args} ${modular.jdk.args} -Dorg.wildfly.extension.elytron.restore-default-ssl-context=true -Dauthconfigprovider.factory=org.wildfly.security.auth.jaspi.ElytronAuthConfigFactory
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/AuthenticationClientParser.java b/elytron/src/main/java/org/wildfly/extension/elytron/AuthenticationClientParser.java
index d8e46355bfc..dca9be897a3 100644
--- a/elytron/src/main/java/org/wildfly/extension/elytron/AuthenticationClientParser.java
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/AuthenticationClientParser.java
@@ -40,7 +40,7 @@ class AuthenticationClientParser {
.addAttribute(AuthenticationClientDefinitions.MATCH_RULES, AttributeParser.UNWRAPPED_OBJECT_LIST_PARSER, AttributeMarshaller.UNWRAPPED_OBJECT_LIST_MARSHALLER)
.build();
- final PersistentResourceXMLDescription parser = decorator(ElytronDescriptionConstants.AUTHENTICATION_CLIENT)
+ final PersistentResourceXMLDescription parser_1_0 = decorator(ElytronDescriptionConstants.AUTHENTICATION_CLIENT)
.addChild(authenticationConfigurationParser)
.addChild(authenticationContextParser)
.build();
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronExtension.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronExtension.java
index 9d996fed2e5..2ce9cd075e1 100644
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronExtension.java
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronExtension.java
@@ -7,9 +7,11 @@
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SUBSYSTEM;
+import java.util.EnumSet;
import java.util.concurrent.atomic.AtomicReference;
import javax.net.ssl.SSLContext;
+import org.jboss.as.controller.PersistentResourceXMLDescriptionWriter;
import org.jboss.as.controller.extension.ExpressionResolverExtension;
import org.jboss.as.controller.Extension;
import org.jboss.as.controller.ExtensionContext;
@@ -37,28 +39,8 @@
public class ElytronExtension implements Extension {
/**
- * The name spaces used for the {@code subsystem} element
+ * The current name space used for the {@code subsystem} element
*/
- static final String NAMESPACE_1_0 = "urn:wildfly:elytron:1.0";
- static final String NAMESPACE_1_1 = "urn:wildfly:elytron:1.1";
- static final String NAMESPACE_1_2 = "urn:wildfly:elytron:1.2";
- static final String NAMESPACE_2_0 = "urn:wildfly:elytron:2.0";
- static final String NAMESPACE_3_0 = "urn:wildfly:elytron:3.0";
- static final String NAMESPACE_4_0 = "urn:wildfly:elytron:4.0";
- static final String NAMESPACE_5_0 = "urn:wildfly:elytron:5.0";
- static final String NAMESPACE_6_0 = "urn:wildfly:elytron:6.0";
- static final String NAMESPACE_7_0 = "urn:wildfly:elytron:7.0";
- static final String NAMESPACE_8_0 = "urn:wildfly:elytron:8.0";
- static final String NAMESPACE_9_0 = "urn:wildfly:elytron:9.0";
- static final String NAMESPACE_10_0 = "urn:wildfly:elytron:10.0";
- static final String NAMESPACE_11_0 = "urn:wildfly:elytron:11.0";
- static final String NAMESPACE_12_0 = "urn:wildfly:elytron:12.0";
- static final String NAMESPACE_13_0 = "urn:wildfly:elytron:13.0";
- static final String NAMESPACE_14_0 = "urn:wildfly:elytron:14.0";
- static final String NAMESPACE_15_0 = "urn:wildfly:elytron:15.0";
- static final String NAMESPACE_15_1 = "urn:wildfly:elytron:15.1";
- static final String NAMESPACE_16_0 = "urn:wildfly:elytron:16.0";
- static final String NAMESPACE_17_0 = "urn:wildfly:elytron:17.0";
static final String NAMESPACE_18_0 = "urn:wildfly:elytron:18.0";
static final String CURRENT_NAMESPACE = NAMESPACE_18_0;
@@ -124,27 +106,7 @@ static boolean isServerOrHostController(ImmutableManagementResourceRegistration
@Override
public void initializeParsers(ExtensionParsingContext context) {
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_1_0, () -> new ElytronSubsystemParser1_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_1_1, () -> new ElytronSubsystemParser1_1());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_1_2, () -> new ElytronSubsystemParser1_2());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_2_0, () -> new ElytronSubsystemParser2_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_3_0, () -> new ElytronSubsystemParser3_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_4_0, () -> new ElytronSubsystemParser4_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_5_0, () -> new ElytronSubsystemParser5_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_6_0, () -> new ElytronSubsystemParser6_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_7_0, () -> new ElytronSubsystemParser7_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_8_0, () -> new ElytronSubsystemParser8_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_9_0, () -> new ElytronSubsystemParser9_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_10_0, () -> new ElytronSubsystemParser10_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_11_0, () -> new ElytronSubsystemParser11_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_12_0, () -> new ElytronSubsystemParser12_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_13_0, () -> new ElytronSubsystemParser13_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_14_0, () -> new ElytronSubsystemParser14_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_15_0, () -> new ElytronSubsystemParser15_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_15_1, () -> new ElytronSubsystemParser15_1());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_16_0, () -> new ElytronSubsystemParser16_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_17_0, () -> new ElytronSubsystemParser17_0());
- context.setSubsystemXmlMapping(SUBSYSTEM_NAME, NAMESPACE_18_0, () -> new ElytronSubsystemParser18_0());
+ context.setSubsystemXmlMappings(SUBSYSTEM_NAME, EnumSet.allOf(ElytronSubsystemSchema.class));
}
@Override
@@ -157,7 +119,7 @@ public void initialize(ExtensionContext context) {
AtomicReference resolverRef = new AtomicReference<>();
final ManagementResourceRegistration registration = subsystemRegistration.registerSubsystemModel(new ElytronDefinition(resolverRef));
registration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE);
- subsystemRegistration.registerXMLElementWriter(() -> new ElytronSubsystemParser18_0());
+ subsystemRegistration.registerXMLElementWriter(new PersistentResourceXMLDescriptionWriter(ElytronSubsystemSchema.CURRENT.get(context.getStability())));
context.registerExpressionResolverExtension(resolverRef::get, ExpressionResolverResourceDefinition.INITIAL_PATTERN, false);
}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser10_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser10_0.java
deleted file mode 100644
index 13ab9c2b9b6..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser10_0.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAIN;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAINS;
-
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- * @since 12.0
- */
-public class ElytronSubsystemParser10_0 extends ElytronSubsystemParser9_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_10_0;
- }
-
- final PersistentResourceXMLDescription domainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
- .setXmlWrapperElement(SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.DEFAULT_REALM)
- .addAttribute(DomainDefinition.PERMISSION_MAPPER)
- .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
- .addAttribute(DomainDefinition.REALM_MAPPER)
- .addAttribute(DomainDefinition.ROLE_MAPPER)
- .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
- .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
- .addAttribute(DomainDefinition.REALMS)
- .addAttribute(DomainDefinition.EVIDENCE_DECODER)
- .addAttribute(DomainDefinition.ROLE_DECODER) // new
- .build();
-
- @Override
- PersistentResourceXMLDescription getDomainParser() {
- return domainParser;
- }
-
- @Override
- protected PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_10_0).getParser();
- }
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser11_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser11_0.java
deleted file mode 100644
index aac0c50b055..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser11_0.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- * @since 13.0
- */
-public class ElytronSubsystemParser11_0 extends ElytronSubsystemParser10_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_11_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_11_0;
- }
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser12_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser12_0.java
deleted file mode 100644
index a89dd41c46c..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser12_0.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 14.0
- */
-public class ElytronSubsystemParser12_0 extends ElytronSubsystemParser11_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_12_0;
- }
-
- @Override
- protected PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_12_0).getParser();
- }
-
-
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser_12_0;
- }
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser13_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser13_0.java
deleted file mode 100644
index f13da69928f..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser13_0.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.ENCRYPTION;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.EXPRESSION;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.EXPRESSION_RESOLVER;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_PROPERTY;
-
-import org.jboss.as.controller.AttributeMarshallers;
-import org.jboss.as.controller.AttributeParsers;
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 15.0
- */
-public class ElytronSubsystemParser13_0 extends ElytronSubsystemParser12_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_13_0;
- }
-
- @Override
- PersistentResourceXMLDescription getCredentialStoresParser() {
- return new CredentialStoreParser().getCredentialStoresParser_13().build();
- }
-
- // New
- PersistentResourceXMLDescription getExpressionResolverParser() {
- return PersistentResourceXMLDescription.builder(
- PathElement.pathElement(EXPRESSION, ENCRYPTION))
- .setXmlElementName(EXPRESSION_RESOLVER)
- .addAttribute(ExpressionResolverResourceDefinition.RESOLVERS)
- .addAttribute(ExpressionResolverResourceDefinition.DEFAULT_RESOLVER)
- .addAttribute(ExpressionResolverResourceDefinition.PREFIX)
- .build();
- }
-
- public PersistentResourceXMLDescription getParserDescription() {
- return PersistentResourceXMLDescription.builder(ElytronExtension.SUBSYSTEM_PATH, getNameSpace())
- .addAttribute(ElytronDefinition.DEFAULT_AUTHENTICATION_CONTEXT)
- .addAttribute(ElytronDefinition.INITIAL_PROVIDERS)
- .addAttribute(ElytronDefinition.FINAL_PROVIDERS)
- .addAttribute(ElytronDefinition.DISALLOWED_PROVIDERS)
- .addAttribute(ElytronDefinition.SECURITY_PROPERTIES, new AttributeParsers.PropertiesParser(null, SECURITY_PROPERTY, true), new AttributeMarshallers.PropertiesAttributeMarshaller(null, SECURITY_PROPERTY, true))
- .addAttribute(ElytronDefinition.REGISTER_JASPI_FACTORY)
- .addAttribute(ElytronDefinition.DEFAULT_SSL_CONTEXT)
- .addChild(getAuthenticationClientParser())
- .addChild(getProviderParser())
- .addChild(getAuditLoggingParser())
- .addChild(getDomainParser())
- .addChild(getRealmParser())
- .addChild(getCredentialSecurityFactoryParser())
- .addChild(getMapperParser())
- .addChild(getPermissionSetParser())
- .addChild(getHttpParser())
- .addChild(getSaslParser())
- .addChild(getTlsParser())
- .addChild(getCredentialStoresParser())
- .addChild(getExpressionResolverParser()) // New
- .addChild(getDirContextParser())
- .addChild(getPolicyParser())
- .addChild(jaspiConfigurationParser)
- .build();
- }
-
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser14_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser14_0.java
deleted file mode 100644
index 687acfa7334..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser14_0.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 16.0
- */
-public class ElytronSubsystemParser14_0 extends ElytronSubsystemParser13_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_14_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_14_0;
- }
-
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser_14_0;
- }
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser15_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser15_0.java
deleted file mode 100644
index fa66d8d96f8..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser15_0.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- * @since 17.0
- */
-public class ElytronSubsystemParser15_0 extends ElytronSubsystemParser14_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_15_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_15_0;
- }
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser15_1.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser15_1.java
deleted file mode 100644
index d7daf06b9a8..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser15_1.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- */
-public class ElytronSubsystemParser15_1 extends ElytronSubsystemParser15_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_15_1;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_15_1;
- }
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser16_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser16_0.java
deleted file mode 100644
index ac1ee9e4e11..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser16_0.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- */
-public class ElytronSubsystemParser16_0 extends ElytronSubsystemParser15_1 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_16_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_16;
- }
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser17_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser17_0.java
deleted file mode 100644
index 178349971b1..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser17_0.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.jboss.as.controller.PersistentResourceXMLDescription.decorator;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAIN;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.VIRTUAL_SECURITY_DOMAIN;
-
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- */
-public class ElytronSubsystemParser17_0 extends ElytronSubsystemParser16_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_17_0;
- }
-
- final PersistentResourceXMLDescription securityDomainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
- .addAttribute(DomainDefinition.DEFAULT_REALM)
- .addAttribute(DomainDefinition.PERMISSION_MAPPER)
- .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
- .addAttribute(DomainDefinition.REALM_MAPPER)
- .addAttribute(DomainDefinition.ROLE_MAPPER)
- .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.TRUSTED_VIRTUAL_SECURITY_DOMAINS) // new
- .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
- .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
- .addAttribute(DomainDefinition.REALMS)
- .addAttribute(DomainDefinition.EVIDENCE_DECODER)
- .addAttribute(DomainDefinition.ROLE_DECODER)
- .build();
-
- final PersistentResourceXMLDescription virtualSecurityDomainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(VIRTUAL_SECURITY_DOMAIN))
- .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
- .addAttribute(VirtualDomainDefinition.OUTFLOW_SECURITY_DOMAINS)
- .addAttribute(VirtualDomainDefinition.AUTH_METHOD)
- .build();
-
- final PersistentResourceXMLDescription domainParser = decorator(ElytronDescriptionConstants.SECURITY_DOMAINS)
- .addChild(securityDomainParser)
- .addChild(virtualSecurityDomainParser)
- .build();
-
- @Override
- PersistentResourceXMLDescription getDomainParser() {
- return domainParser;
- }
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser18_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser18_0.java
deleted file mode 100644
index a16a8891ddc..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser18_0.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- */
-public class ElytronSubsystemParser18_0 extends ElytronSubsystemParser17_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_18_0;
- }
-
- @Override
- PersistentResourceXMLDescription getAuditLoggingParser() {
- return new AuditLoggingParser().parser18_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_18;
- }
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_0.java
deleted file mode 100644
index 21ffaac834c..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_0.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.jboss.as.controller.PersistentResourceXMLDescription.builder;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.DIR_CONTEXTS;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.JACC_POLICY;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.POLICY;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAIN;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAINS;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_PROPERTY;
-
-import org.jboss.as.controller.AttributeMarshallers;
-import org.jboss.as.controller.AttributeParsers;
-import org.jboss.as.controller.ObjectListAttributeDefinition;
-import org.jboss.as.controller.ObjectTypeAttributeDefinition;
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-import org.jboss.as.controller.PersistentResourceXMLParser;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml
- *
- * @author Darran Lofthouse *
- * @author Tomaz Cerar
- */
-class ElytronSubsystemParser1_0 extends PersistentResourceXMLParser {
-
- final PersistentResourceXMLDescription domainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
- .setXmlWrapperElement(SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.DEFAULT_REALM)
- .addAttribute(DomainDefinition.PERMISSION_MAPPER)
- .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
- .addAttribute(DomainDefinition.REALM_MAPPER)
- .addAttribute(DomainDefinition.ROLE_MAPPER)
- .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
- .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
- .addAttribute(DomainDefinition.REALMS)
- .build();
-
- final PersistentResourceXMLDescription dirContextParser = PersistentResourceXMLDescription.decorator(DIR_CONTEXTS)
- .addChild(builder(PathElement.pathElement(ElytronDescriptionConstants.DIR_CONTEXT))
- .addAttributes(DirContextDefinition.ATTRIBUTES))
- .build();
-
-
- private static class JaccPolicyDefinition {
- static ObjectTypeAttributeDefinition POLICY = new ObjectTypeAttributeDefinition.Builder(JACC_POLICY, PolicyDefinitions.RESOURCE_NAME, PolicyDefinitions.JaccPolicyDefinition.POLICY_PROVIDER, PolicyDefinitions.JaccPolicyDefinition.CONFIGURATION_FACTORY, PolicyDefinitions.JaccPolicyDefinition.MODULE).build();
- static final ObjectListAttributeDefinition POLICIES = new ObjectListAttributeDefinition.Builder(JACC_POLICY, POLICY)
- .setMinSize(1)
- .setRequired(false)
- .build();
- }
-
- private static class CustomPolicyDefinition {
- static ObjectTypeAttributeDefinition POLICY = new ObjectTypeAttributeDefinition.Builder(ElytronDescriptionConstants.CUSTOM_POLICY, PolicyDefinitions.RESOURCE_NAME, PolicyDefinitions.CustomPolicyDefinition.CLASS_NAME, PolicyDefinitions.CustomPolicyDefinition.MODULE).build();
- static final ObjectListAttributeDefinition POLICIES = new ObjectListAttributeDefinition.Builder(ElytronDescriptionConstants.CUSTOM_POLICY, POLICY)
- .setRequired(false)
- .build();
- }
-
- private final PersistentResourceXMLDescription policyParser = builder(PathElement.pathElement(POLICY))
- .setNameAttributeName(PolicyDefinitions.DEFAULT_POLICY.getName())
- .addAttribute(PolicyDefinitions.DEFAULT_POLICY)
- .addAttribute(JaccPolicyDefinition.POLICIES, AttributeParsers.UNWRAPPED_OBJECT_LIST_PARSER, AttributeMarshallers.OBJECT_LIST_UNWRAPPED)
- .addAttribute(CustomPolicyDefinition.POLICIES, AttributeParsers.UNWRAPPED_OBJECT_LIST_PARSER, AttributeMarshallers.OBJECT_LIST_UNWRAPPED)
- .build();
-
- PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_1_0).getParser();
- }
-
- PersistentResourceXMLDescription getCredentialStoresParser() {
- return new CredentialStoreParser().getCredentialStoresParser().build();
- }
-
- PersistentResourceXMLDescription getDomainParser() {
- return domainParser;
- }
-
- PersistentResourceXMLDescription getDirContextParser() {
- return dirContextParser;
- }
-
- PersistentResourceXMLDescription getPolicyParser() {
- return policyParser;
- }
-
- PersistentResourceXMLDescription getHttpParser() {
- return new HttpParser().parser;
- }
-
- PersistentResourceXMLDescription getSaslParser() {
- return new SaslParser().parser;
- }
-
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser;
- }
-
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser;
- }
-
- PersistentResourceXMLDescription getAuthenticationClientParser() {
- return new AuthenticationClientParser().parser;
- }
-
- PersistentResourceXMLDescription getAuditLoggingParser() {
- return new AuditLoggingParser().parser;
- }
-
- PersistentResourceXMLDescription getProviderParser() {
- return new ProviderParser().parser;
- }
-
- PersistentResourceXMLDescription getCredentialSecurityFactoryParser() {
- return new CredentialSecurityFactoryParser().parser;
- }
-
-
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_1_0;
- }
-
- @Override
- public PersistentResourceXMLDescription getParserDescription() {
- return PersistentResourceXMLDescription.builder(ElytronExtension.SUBSYSTEM_PATH, getNameSpace())
- .addAttribute(ElytronDefinition.DEFAULT_AUTHENTICATION_CONTEXT)
- .addAttribute(ElytronDefinition.INITIAL_PROVIDERS)
- .addAttribute(ElytronDefinition.FINAL_PROVIDERS)
- .addAttribute(ElytronDefinition.DISALLOWED_PROVIDERS)
- .addAttribute(ElytronDefinition.SECURITY_PROPERTIES, new AttributeParsers.PropertiesParser(null, SECURITY_PROPERTY, true), new AttributeMarshallers.PropertiesAttributeMarshaller(null, SECURITY_PROPERTY, true))
- .addChild(getAuthenticationClientParser())
- .addChild(getAuditLoggingParser())
- .addChild(getProviderParser())
- .addChild(getDomainParser())
- .addChild(getRealmParser())
- .addChild(getMapperParser())
- .addChild(getTlsParser())
- .addChild(getDirContextParser())
- .addChild(getCredentialStoresParser())
- .addChild(getSaslParser())
- .addChild(getHttpParser())
- .addChild(getPolicyParser())
- .addChild(getCredentialSecurityFactoryParser())
- .build();
- }
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_1.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_1.java
deleted file mode 100644
index ec61b9e5eab..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_1.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml
- *
- * @author Darran Lofthouse *
- * @author Tomaz Cerar
- */
-class ElytronSubsystemParser1_1 extends ElytronSubsystemParser1_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_1_1;
- }
-
- protected PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_1_1).getParser();
- }
-
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_2.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_2.java
deleted file mode 100644
index 19238ac6b2e..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser1_2.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.POLICY;
-
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml
- *
- * @author Darran Lofthouse *
- * @author Tomaz Cerar
- */
-class ElytronSubsystemParser1_2 extends ElytronSubsystemParser1_1 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_1_2;
- }
-
- @Override
- PersistentResourceXMLDescription getPolicyParser() {
- return PersistentResourceXMLDescription.builder(PathElement.pathElement(POLICY))
- .addAttribute(PolicyDefinitions.JaccPolicyDefinition.POLICY)
- .addAttribute(PolicyDefinitions.CustomPolicyDefinition.POLICY)
- .build();
- }
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser2_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser2_0.java
deleted file mode 100644
index dfd53b64570..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser2_0.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_PROPERTY;
-
-import org.jboss.as.controller.AttributeMarshallers;
-import org.jboss.as.controller.AttributeParsers;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml
- *
- * @author Darran Lofthouse *
- * @author Tomaz Cerar
- * @since 4.0
- */
-class ElytronSubsystemParser2_0 extends ElytronSubsystemParser1_2 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_2_0;
- }
- //at this point definition below is not really needed as it is the same as for 1.1, but it is here as place holder when subsystem parser evolves.
- @Override
- public PersistentResourceXMLDescription getParserDescription() {
- return PersistentResourceXMLDescription.builder(ElytronExtension.SUBSYSTEM_PATH, getNameSpace())
- .addAttribute(ElytronDefinition.DEFAULT_AUTHENTICATION_CONTEXT)
- .addAttribute(ElytronDefinition.INITIAL_PROVIDERS)
- .addAttribute(ElytronDefinition.FINAL_PROVIDERS)
- .addAttribute(ElytronDefinition.DISALLOWED_PROVIDERS)
- .addAttribute(ElytronDefinition.SECURITY_PROPERTIES, new AttributeParsers.PropertiesParser(null, SECURITY_PROPERTY, true), new AttributeMarshallers.PropertiesAttributeMarshaller(null, SECURITY_PROPERTY, true))
- .addChild(getAuthenticationClientParser())
- .addChild(getProviderParser())
- .addChild(getAuditLoggingParser())
- .addChild(getDomainParser())
- .addChild(getRealmParser())
- .addChild(getCredentialSecurityFactoryParser())
- .addChild(getMapperParser())
- .addChild(getHttpParser())
- .addChild(getSaslParser())
- .addChild(getTlsParser())
- .addChild(getCredentialStoresParser())
- .addChild(getDirContextParser())
- .addChild(getPolicyParser())
- .build();
- }
-
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser3_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser3_0.java
deleted file mode 100644
index 06b47d44cbe..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser3_0.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.PERMISSION_SETS;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_PROPERTY;
-import static org.wildfly.extension.elytron.PermissionMapperDefinitions.PERMISSIONS;
-
-import org.jboss.as.controller.AttributeMarshallers;
-import org.jboss.as.controller.AttributeParsers;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- * @since 5.0
- */
-class ElytronSubsystemParser3_0 extends ElytronSubsystemParser2_0 {
-
- final PersistentResourceXMLDescription permissionSetParser = PersistentResourceXMLDescription.builder(PermissionSetDefinition.getPermissionSet().getPathElement())
- .setXmlWrapperElement(PERMISSION_SETS)
- .addAttribute(PERMISSIONS)
- .build();
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_3_0;
- }
-
- @Override
- public PersistentResourceXMLDescription getParserDescription() {
- return PersistentResourceXMLDescription.builder(ElytronExtension.SUBSYSTEM_PATH, getNameSpace())
- .addAttribute(ElytronDefinition.DEFAULT_AUTHENTICATION_CONTEXT)
- .addAttribute(ElytronDefinition.INITIAL_PROVIDERS)
- .addAttribute(ElytronDefinition.FINAL_PROVIDERS)
- .addAttribute(ElytronDefinition.DISALLOWED_PROVIDERS)
- .addAttribute(ElytronDefinition.SECURITY_PROPERTIES, new AttributeParsers.PropertiesParser(null, SECURITY_PROPERTY, true), new AttributeMarshallers.PropertiesAttributeMarshaller(null, SECURITY_PROPERTY, true))
- .addChild(getAuthenticationClientParser())
- .addChild(getProviderParser())
- .addChild(getAuditLoggingParser())
- .addChild(getDomainParser())
- .addChild(getRealmParser())
- .addChild(getCredentialSecurityFactoryParser())
- .addChild(getMapperParser())
- .addChild(getPermissionSetParser()) // new
- .addChild(getHttpParser())
- .addChild(getSaslParser())
- .addChild(getTlsParser())
- .addChild(getCredentialStoresParser())
- .addChild(getDirContextParser())
- .addChild(getPolicyParser())
- .build();
- }
-
- protected PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_3_0).getParser();
- }
-
- PersistentResourceXMLDescription getPermissionSetParser() {
- return permissionSetParser;
- }
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser4_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser4_0.java
deleted file mode 100644
index 68d6dc0da6e..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser4_0.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 6.0
- */
-public class ElytronSubsystemParser4_0 extends ElytronSubsystemParser3_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_4_0;
- }
-
- @Override
- PersistentResourceXMLDescription getAuditLoggingParser() {
- return new AuditLoggingParser().parser4_0;
- }
-
- @Override
- protected PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_4_0).getParser();
- }
-
- @Override
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser_4_0;
- }
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser5_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser5_0.java
deleted file mode 100644
index f8a68ef2d61..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser5_0.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.JASPI;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.JASPI_CONFIGURATION;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_PROPERTY;
-
-import org.jboss.as.controller.AttributeMarshallers;
-import org.jboss.as.controller.AttributeParsers;
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 7.0
- */
-public class ElytronSubsystemParser5_0 extends ElytronSubsystemParser4_0 {
-
- final PersistentResourceXMLDescription jaspiConfigurationParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(JASPI_CONFIGURATION))
- .setXmlWrapperElement(JASPI)
- .addAttributes(JaspiDefinition.ATTRIBUTES)
- .build();
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_5_0;
- }
-
- public PersistentResourceXMLDescription getParserDescription() {
- return PersistentResourceXMLDescription.builder(ElytronExtension.SUBSYSTEM_PATH, getNameSpace())
- .addAttribute(ElytronDefinition.DEFAULT_AUTHENTICATION_CONTEXT)
- .addAttribute(ElytronDefinition.INITIAL_PROVIDERS)
- .addAttribute(ElytronDefinition.FINAL_PROVIDERS)
- .addAttribute(ElytronDefinition.DISALLOWED_PROVIDERS)
- .addAttribute(ElytronDefinition.SECURITY_PROPERTIES, new AttributeParsers.PropertiesParser(null, SECURITY_PROPERTY, true), new AttributeMarshallers.PropertiesAttributeMarshaller(null, SECURITY_PROPERTY, true))
- .addAttribute(ElytronDefinition.REGISTER_JASPI_FACTORY)
- .addAttribute(ElytronDefinition.DEFAULT_SSL_CONTEXT)
- .addChild(getAuthenticationClientParser())
- .addChild(getProviderParser())
- .addChild(getAuditLoggingParser())
- .addChild(getDomainParser())
- .addChild(getRealmParser())
- .addChild(getCredentialSecurityFactoryParser())
- .addChild(getMapperParser())
- .addChild(getPermissionSetParser())
- .addChild(getHttpParser())
- .addChild(getSaslParser())
- .addChild(getTlsParser())
- .addChild(getCredentialStoresParser())
- .addChild(getDirContextParser())
- .addChild(getPolicyParser())
- .addChild(jaspiConfigurationParser) // new
- .build();
- }
-
- @Override
- PersistentResourceXMLDescription getAuditLoggingParser() {
- return new AuditLoggingParser().parser5_0;
- }
-
- @Override
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser_5_0;
- }
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser6_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser6_0.java
deleted file mode 100644
index 34092221d48..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser6_0.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 8.0
- */
-public class ElytronSubsystemParser6_0 extends ElytronSubsystemParser5_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_6_0;
- }
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser7_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser7_0.java
deleted file mode 100644
index 9c5ea644265..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser7_0.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Darran Lofthouse
- * @since 9.0
- */
-public class ElytronSubsystemParser7_0 extends ElytronSubsystemParser6_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_7_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_7_0;
- }
-
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser8_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser8_0.java
deleted file mode 100644
index 91958ff7066..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser8_0.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAIN;
-import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAINS;
-
-import org.jboss.as.controller.PathElement;
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- * @since 10.0
- */
-public class ElytronSubsystemParser8_0 extends ElytronSubsystemParser7_0 {
-
- final PersistentResourceXMLDescription domainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
- .setXmlWrapperElement(SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.DEFAULT_REALM)
- .addAttribute(DomainDefinition.PERMISSION_MAPPER)
- .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
- .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
- .addAttribute(DomainDefinition.REALM_MAPPER)
- .addAttribute(DomainDefinition.ROLE_MAPPER)
- .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
- .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
- .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
- .addAttribute(DomainDefinition.REALMS)
- .addAttribute(DomainDefinition.EVIDENCE_DECODER) // new
- .build();
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_8_0;
- }
-
- @Override
- PersistentResourceXMLDescription getRealmParser() {
- return new RealmParser().realmParser_8_0;
- }
-
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser_8_0;
- }
-
- @Override
- protected PersistentResourceXMLDescription getMapperParser() {
- return new MapperParser(MapperParser.Version.VERSION_8_0).getParser();
- }
-
-
- @Override
- PersistentResourceXMLDescription getDomainParser() {
- return domainParser;
- }
-
- @Override
- PersistentResourceXMLDescription getAuditLoggingParser() {
- return new AuditLoggingParser().parser8_0;
- }
-}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser9_0.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser9_0.java
deleted file mode 100644
index 1cc109255b9..00000000000
--- a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemParser9_0.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import org.jboss.as.controller.PersistentResourceXMLDescription;
-
-/**
- * The subsystem parser, which uses stax to read and write to and from xml.
- *
- * @author Farah Juma
- * @since 11.0
- */
-public class ElytronSubsystemParser9_0 extends ElytronSubsystemParser8_0 {
-
- @Override
- String getNameSpace() {
- return ElytronExtension.NAMESPACE_9_0;
- }
-
-
- @Override
- PersistentResourceXMLDescription getAuthenticationClientParser() {
- return new AuthenticationClientParser().parser_9_0;
- }
-
-
- PersistentResourceXMLDescription getTlsParser() {
- return new TlsParser().tlsParser_9_0;
- }
-
-}
-
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemSchema.java b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemSchema.java
new file mode 100644
index 00000000000..357999d866e
--- /dev/null
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/ElytronSubsystemSchema.java
@@ -0,0 +1,287 @@
+/*
+ * Copyright The WildFly Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package org.wildfly.extension.elytron;
+
+import org.jboss.as.controller.AttributeMarshallers;
+import org.jboss.as.controller.AttributeParsers;
+import org.jboss.as.controller.Feature;
+import org.jboss.as.controller.PathElement;
+import org.jboss.as.controller.PersistentResourceXMLDescription;
+import org.jboss.as.controller.PersistentSubsystemSchema;
+import org.jboss.as.controller.SubsystemSchema;
+import org.jboss.as.controller.xml.VersionedNamespace;
+import org.jboss.as.version.Stability;
+import org.jboss.staxmapper.IntVersion;
+
+import java.util.EnumSet;
+import java.util.Map;
+
+import static org.jboss.as.controller.PersistentResourceXMLDescription.builder;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.DIR_CONTEXTS;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.ENCRYPTION;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.EXPRESSION;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.EXPRESSION_RESOLVER;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.PERMISSION_SETS;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_PROPERTY;
+import static org.wildfly.extension.elytron.PermissionMapperDefinitions.PERMISSIONS;
+
+/**
+ * Enumeration of elytron subsystem schema versions.
+ */
+public enum ElytronSubsystemSchema implements PersistentSubsystemSchema {
+ VERSION_1_0(1),
+ VERSION_1_1(1, 1),
+ VERSION_1_2(1, 2),
+ VERSION_2_0(2),
+ VERSION_3_0(3),
+ VERSION_4_0(4),
+ VERSION_5_0(5),
+ VERSION_6_0(6),
+ VERSION_7_0(7),
+ VERSION_8_0(8),
+ VERSION_9_0(9),
+ VERSION_10_0(10),
+ VERSION_11_0(11),
+ VERSION_12_0(12),
+ VERSION_13_0(13),
+ VERSION_14_0(14),
+ VERSION_15_0(15),
+ VERSION_15_1(15, 1),
+ VERSION_16_0(16),
+ VERSION_17_0(17),
+ VERSION_18_0(18),
+ ;
+ static final Map CURRENT = Feature.map(EnumSet.of(VERSION_18_0));
+
+ private final VersionedNamespace namespace;
+
+ ElytronSubsystemSchema(int major) {
+ this.namespace = SubsystemSchema.createSubsystemURN(ElytronExtension.SUBSYSTEM_NAME, new IntVersion(major));
+ }
+
+ ElytronSubsystemSchema(int major, int minor) {
+ this.namespace = SubsystemSchema.createSubsystemURN(ElytronExtension.SUBSYSTEM_NAME, new IntVersion(major, minor));
+ }
+
+ ElytronSubsystemSchema(int major, Stability stability) {
+ this.namespace = SubsystemSchema.createSubsystemURN(ElytronExtension.SUBSYSTEM_NAME, stability, new IntVersion(major));
+ }
+
+ @Override
+ public VersionedNamespace getNamespace() {
+ return this.namespace;
+ }
+
+ @Override
+ public PersistentResourceXMLDescription getXMLDescription() {
+ PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder = builder(ElytronExtension.SUBSYSTEM_PATH, this.getNamespace());
+ if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addAttribute(ElytronDefinition.DEFAULT_AUTHENTICATION_CONTEXT)
+ .addAttribute(ElytronDefinition.INITIAL_PROVIDERS)
+ .addAttribute(ElytronDefinition.FINAL_PROVIDERS)
+ .addAttribute(ElytronDefinition.DISALLOWED_PROVIDERS)
+ .addAttribute(ElytronDefinition.SECURITY_PROPERTIES, new AttributeParsers.PropertiesParser(null, SECURITY_PROPERTY, true), new AttributeMarshallers.PropertiesAttributeMarshaller(null, SECURITY_PROPERTY, true));
+ }
+
+ if (this.since(ElytronSubsystemSchema.VERSION_5_0)) {
+ builder.addAttribute(ElytronDefinition.REGISTER_JASPI_FACTORY)
+ .addAttribute(ElytronDefinition.DEFAULT_SSL_CONTEXT);
+ }
+
+ addAuthenticationClientParser(builder);
+ addProviderParser(builder);
+ addAuditLoggingParser(builder);
+ addSecurityDomainParser(builder);
+ addRealmParser(builder);
+ addCredentialSecurityFactoryParser(builder);
+ addMapperParser(builder);
+ addPermissionSetParser(builder);
+ addHttpParser(builder);
+ addSaslParser(builder);
+ addTlsParser(builder);
+ addCredentialStoreParser(builder);
+ addExpressionResolverParser(builder);
+ addDirContextParser(builder);
+ addPolicyParser(builder);
+ addJaspiConfigurationParser(builder);
+
+ return builder.build();
+ }
+
+ private void addJaspiConfigurationParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_5_0)) {
+ builder.addChild(new JaspiConfigurationParser().jaspiConfigurationParser_5_0);
+ }
+ }
+
+ private void addDirContextParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(PersistentResourceXMLDescription.decorator(DIR_CONTEXTS)
+ .addChild(builder(PathElement.pathElement(ElytronDescriptionConstants.DIR_CONTEXT))
+ .addAttributes(DirContextDefinition.ATTRIBUTES))
+ .build());
+ }
+ }
+
+ private void addExpressionResolverParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_13_0)) {
+ builder.addChild(PersistentResourceXMLDescription.builder(
+ PathElement.pathElement(EXPRESSION, ENCRYPTION))
+ .setXmlElementName(EXPRESSION_RESOLVER)
+ .addAttribute(ExpressionResolverResourceDefinition.RESOLVERS)
+ .addAttribute(ExpressionResolverResourceDefinition.DEFAULT_RESOLVER)
+ .addAttribute(ExpressionResolverResourceDefinition.PREFIX)
+ .build());
+ }
+ }
+
+ private void addSaslParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(new SaslParser().parser);
+ }
+ }
+
+ private void addHttpParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(new HttpParser().parser);
+ }
+ }
+
+ private void addPermissionSetParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_3_0)) {
+ builder.addChild(PersistentResourceXMLDescription.builder(PermissionSetDefinition.getPermissionSet().getPathElement())
+ .setXmlWrapperElement(PERMISSION_SETS)
+ .addAttribute(PERMISSIONS)
+ .build());
+ }
+ }
+
+ private void addCredentialSecurityFactoryParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(new CredentialSecurityFactoryParser().parser);
+ }
+ }
+
+ private void addProviderParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(new ProviderParser().parser);
+ }
+ }
+
+ private void addPolicyParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ PolicyParser policyParser = new PolicyParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_1_2)) {
+ builder.addChild(policyParser.parser_1_2);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(policyParser.parser_1_0);
+ }
+ }
+
+ private void addCredentialStoreParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ CredentialStoreParser credentialStoreParser = new CredentialStoreParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_13_0)) {
+ builder.addChild(credentialStoreParser.getCredentialStoresParser_13().build());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(credentialStoreParser.getCredentialStoresParser().build());
+ }
+ }
+
+ private void addTlsParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ TlsParser tlsParser = new TlsParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_14_0)) {
+ builder.addChild(tlsParser.tlsParser_14_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_12_0)) {
+ builder.addChild(tlsParser.tlsParser_12_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_9_0)) {
+ builder.addChild(tlsParser.tlsParser_9_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_8_0)) {
+ builder.addChild(tlsParser.tlsParser_8_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_5_0)) {
+ builder.addChild(tlsParser.tlsParser_5_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_4_0)) {
+ builder.addChild(tlsParser.tlsParser_4_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(tlsParser.tlsParser_1_0);
+ }
+ }
+
+ private void addMapperParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ if (this.since(ElytronSubsystemSchema.VERSION_12_0)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_12_0).getParser());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_10_0)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_10_0).getParser());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_8_0)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_8_0).getParser());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_4_0)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_4_0).getParser());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_3_0)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_3_0).getParser());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_1)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_1_1).getParser());
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(new MapperParser(MapperParser.Version.VERSION_1_0).getParser());
+ }
+ }
+
+ private void addRealmParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ RealmParser realmParser = new RealmParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_18_0)) {
+ builder.addChild(realmParser.realmParser_18);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_16_0)) {
+ builder.addChild(realmParser.realmParser_16);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_15_1)) {
+ builder.addChild(realmParser.realmParser_15_1);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_15_0)) {
+ builder.addChild(realmParser.realmParser_15_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_14_0)) {
+ builder.addChild(realmParser.realmParser_14_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_11_0)) {
+ builder.addChild(realmParser.realmParser_11_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_8_0)) {
+ builder.addChild(realmParser.realmParser_8_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_7_0)) {
+ builder.addChild(realmParser.realmParser_7_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(realmParser.realmParser);
+ }
+ }
+
+ private void addSecurityDomainParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ SecurityDomainParser securityDomainParser = new SecurityDomainParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_17_0)) {
+ builder.addChild(securityDomainParser.parser_17_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_10_0)) {
+ builder.addChild(securityDomainParser.parser_10_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_8_0)) {
+ builder.addChild(securityDomainParser.parser_8_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(securityDomainParser.parser_1_0);
+ }
+ }
+
+ private void addAuditLoggingParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ AuditLoggingParser auditLoggingParser = new AuditLoggingParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_18_0)) {
+ builder.addChild(auditLoggingParser.parser18_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_8_0)) {
+ builder.addChild(auditLoggingParser.parser8_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_5_0)) {
+ builder.addChild(auditLoggingParser.parser5_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_4_0)) {
+ builder.addChild(auditLoggingParser.parser4_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(auditLoggingParser.parser);
+ }
+ }
+
+ private void addAuthenticationClientParser(PersistentResourceXMLDescription.PersistentResourceXMLBuilder builder) {
+ AuthenticationClientParser authenticationClientParser = new AuthenticationClientParser();
+ if (this.since(ElytronSubsystemSchema.VERSION_9_0)) {
+ builder.addChild(authenticationClientParser.parser_9_0);
+ } else if (this.since(ElytronSubsystemSchema.VERSION_1_0)) {
+ builder.addChild(authenticationClientParser.parser_1_0);
+ }
+ }
+}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/JaspiConfigurationParser.java b/elytron/src/main/java/org/wildfly/extension/elytron/JaspiConfigurationParser.java
new file mode 100644
index 00000000000..87a0545e187
--- /dev/null
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/JaspiConfigurationParser.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright The WildFly Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.wildfly.extension.elytron;
+
+import org.jboss.as.controller.PathElement;
+import org.jboss.as.controller.PersistentResourceXMLDescription;
+
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.JASPI;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.JASPI_CONFIGURATION;
+
+class JaspiConfigurationParser {
+
+ final PersistentResourceXMLDescription jaspiConfigurationParser_5_0 = PersistentResourceXMLDescription.builder(PathElement.pathElement(JASPI_CONFIGURATION))
+ .setXmlWrapperElement(JASPI)
+ .addAttributes(JaspiDefinition.ATTRIBUTES)
+ .build();
+}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/PolicyParser.java b/elytron/src/main/java/org/wildfly/extension/elytron/PolicyParser.java
new file mode 100644
index 00000000000..f7ff03815f3
--- /dev/null
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/PolicyParser.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright The WildFly Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.wildfly.extension.elytron;
+
+import org.jboss.as.controller.AttributeMarshallers;
+import org.jboss.as.controller.AttributeParsers;
+import org.jboss.as.controller.ObjectListAttributeDefinition;
+import org.jboss.as.controller.ObjectTypeAttributeDefinition;
+import org.jboss.as.controller.PathElement;
+import org.jboss.as.controller.PersistentResourceXMLDescription;
+
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.JACC_POLICY;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.POLICY;
+
+class PolicyParser {
+
+ PersistentResourceXMLDescription parser_1_0 = PersistentResourceXMLDescription.builder(PathElement.pathElement(POLICY))
+ .setNameAttributeName(PolicyDefinitions.DEFAULT_POLICY.getName())
+ .addAttribute(PolicyDefinitions.DEFAULT_POLICY)
+ .addAttribute(JaccPolicyDefinition.POLICIES, AttributeParsers.UNWRAPPED_OBJECT_LIST_PARSER, AttributeMarshallers.OBJECT_LIST_UNWRAPPED)
+ .addAttribute(CustomPolicyDefinition.POLICIES, AttributeParsers.UNWRAPPED_OBJECT_LIST_PARSER, AttributeMarshallers.OBJECT_LIST_UNWRAPPED)
+ .build();
+
+ PersistentResourceXMLDescription parser_1_2 = PersistentResourceXMLDescription.builder(PathElement.pathElement(POLICY))
+ .addAttribute(PolicyDefinitions.JaccPolicyDefinition.POLICY)
+ .addAttribute(PolicyDefinitions.CustomPolicyDefinition.POLICY)
+ .build();
+
+ private static class JaccPolicyDefinition {
+ static ObjectTypeAttributeDefinition POLICY = new ObjectTypeAttributeDefinition.Builder(JACC_POLICY, PolicyDefinitions.RESOURCE_NAME, PolicyDefinitions.JaccPolicyDefinition.POLICY_PROVIDER, PolicyDefinitions.JaccPolicyDefinition.CONFIGURATION_FACTORY, PolicyDefinitions.JaccPolicyDefinition.MODULE).build();
+ static final ObjectListAttributeDefinition POLICIES = new ObjectListAttributeDefinition.Builder(JACC_POLICY, POLICY)
+ .setMinSize(1)
+ .setRequired(false)
+ .build();
+ }
+
+ private static class CustomPolicyDefinition {
+ static ObjectTypeAttributeDefinition POLICY = new ObjectTypeAttributeDefinition.Builder(ElytronDescriptionConstants.CUSTOM_POLICY, PolicyDefinitions.RESOURCE_NAME, PolicyDefinitions.CustomPolicyDefinition.CLASS_NAME, PolicyDefinitions.CustomPolicyDefinition.MODULE).build();
+ static final ObjectListAttributeDefinition POLICIES = new ObjectListAttributeDefinition.Builder(ElytronDescriptionConstants.CUSTOM_POLICY, POLICY)
+ .setRequired(false)
+ .build();
+ }
+}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/SecurityDomainParser.java b/elytron/src/main/java/org/wildfly/extension/elytron/SecurityDomainParser.java
new file mode 100644
index 00000000000..a1672c261f9
--- /dev/null
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/SecurityDomainParser.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright The WildFly Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.wildfly.extension.elytron;
+
+import org.jboss.as.controller.PathElement;
+import org.jboss.as.controller.PersistentResourceXMLDescription;
+
+import static org.jboss.as.controller.PersistentResourceXMLDescription.decorator;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAIN;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.SECURITY_DOMAINS;
+import static org.wildfly.extension.elytron.ElytronDescriptionConstants.VIRTUAL_SECURITY_DOMAIN;
+
+class SecurityDomainParser {
+
+
+ final PersistentResourceXMLDescription securityDomainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
+ .addAttribute(DomainDefinition.DEFAULT_REALM)
+ .addAttribute(DomainDefinition.PERMISSION_MAPPER)
+ .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
+ .addAttribute(DomainDefinition.REALM_MAPPER)
+ .addAttribute(DomainDefinition.ROLE_MAPPER)
+ .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.TRUSTED_VIRTUAL_SECURITY_DOMAINS) // new
+ .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
+ .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
+ .addAttribute(DomainDefinition.REALMS)
+ .addAttribute(DomainDefinition.EVIDENCE_DECODER)
+ .addAttribute(DomainDefinition.ROLE_DECODER)
+ .build();
+
+ final PersistentResourceXMLDescription virtualSecurityDomainParser = PersistentResourceXMLDescription.builder(PathElement.pathElement(VIRTUAL_SECURITY_DOMAIN))
+ .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
+ .addAttribute(VirtualDomainDefinition.OUTFLOW_SECURITY_DOMAINS)
+ .addAttribute(VirtualDomainDefinition.AUTH_METHOD)
+ .build();
+
+ final PersistentResourceXMLDescription parser_17_0 = decorator(ElytronDescriptionConstants.SECURITY_DOMAINS)
+ .addChild(securityDomainParser)
+ .addChild(virtualSecurityDomainParser)
+ .build();
+
+ final PersistentResourceXMLDescription parser_10_0 = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
+ .setXmlWrapperElement(SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.DEFAULT_REALM)
+ .addAttribute(DomainDefinition.PERMISSION_MAPPER)
+ .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
+ .addAttribute(DomainDefinition.REALM_MAPPER)
+ .addAttribute(DomainDefinition.ROLE_MAPPER)
+ .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
+ .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
+ .addAttribute(DomainDefinition.REALMS)
+ .addAttribute(DomainDefinition.EVIDENCE_DECODER)
+ .addAttribute(DomainDefinition.ROLE_DECODER) // new
+ .build();
+
+ final PersistentResourceXMLDescription parser_8_0 = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
+ .setXmlWrapperElement(SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.DEFAULT_REALM)
+ .addAttribute(DomainDefinition.PERMISSION_MAPPER)
+ .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
+ .addAttribute(DomainDefinition.REALM_MAPPER)
+ .addAttribute(DomainDefinition.ROLE_MAPPER)
+ .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
+ .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
+ .addAttribute(DomainDefinition.REALMS)
+ .addAttribute(DomainDefinition.EVIDENCE_DECODER) // new
+ .build();
+
+ final PersistentResourceXMLDescription parser_1_0 = PersistentResourceXMLDescription.builder(PathElement.pathElement(SECURITY_DOMAIN))
+ .setXmlWrapperElement(SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.DEFAULT_REALM)
+ .addAttribute(DomainDefinition.PERMISSION_MAPPER)
+ .addAttribute(DomainDefinition.PRE_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.POST_REALM_PRINCIPAL_TRANSFORMER)
+ .addAttribute(DomainDefinition.PRINCIPAL_DECODER)
+ .addAttribute(DomainDefinition.REALM_MAPPER)
+ .addAttribute(DomainDefinition.ROLE_MAPPER)
+ .addAttribute(DomainDefinition.TRUSTED_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.OUTFLOW_ANONYMOUS)
+ .addAttribute(DomainDefinition.OUTFLOW_SECURITY_DOMAINS)
+ .addAttribute(DomainDefinition.SECURITY_EVENT_LISTENER)
+ .addAttribute(DomainDefinition.REALMS)
+ .build();
+}
diff --git a/elytron/src/main/java/org/wildfly/extension/elytron/TlsParser.java b/elytron/src/main/java/org/wildfly/extension/elytron/TlsParser.java
index 341ab4de3ce..0aacf83fa57 100644
--- a/elytron/src/main/java/org/wildfly/extension/elytron/TlsParser.java
+++ b/elytron/src/main/java/org/wildfly/extension/elytron/TlsParser.java
@@ -250,7 +250,7 @@ public void marshallSingleElement(AttributeDefinition attribute, ModelNode mappi
});
// 1_0 to 3_0
- final PersistentResourceXMLDescription tlsParser = decorator(TLS)
+ final PersistentResourceXMLDescription tlsParser_1_0 = decorator(TLS)
.addChild(decorator(KEY_STORES)
.addChild(keyStoreParser)
.addChild(ldapKeyStoreParser)
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronMixedStabilitySubsystemParsingTestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronMixedStabilitySubsystemParsingTestCase.java
new file mode 100644
index 00000000000..98e833a83a7
--- /dev/null
+++ b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronMixedStabilitySubsystemParsingTestCase.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright The WildFly Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package org.wildfly.extension.elytron;
+
+import mockit.Mock;
+import org.jboss.as.model.test.ModelTestUtils;
+import org.jboss.as.subsystem.test.AbstractSubsystemSchemaTest;
+import org.jboss.as.subsystem.test.AbstractSubsystemTest;
+import org.jboss.as.version.Stability;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import mockit.MockUp;
+
+import java.io.IOException;
+import java.security.Security;
+import java.util.EnumSet;
+
+import static jakarta.security.auth.message.config.AuthConfigFactory.DEFAULT_FACTORY_SECURITY_PROPERTY;
+
+@RunWith(Parameterized.class)
+public class ElytronMixedStabilitySubsystemParsingTestCase extends AbstractSubsystemSchemaTest {
+
+ @BeforeClass
+ public static void transferSystemProperty() {
+ String value = System.getProperty(DEFAULT_FACTORY_SECURITY_PROPERTY);
+ if (value != null) {
+ String securityValue = Security.getProperty(DEFAULT_FACTORY_SECURITY_PROPERTY);
+ if (securityValue == null) {
+ Security.setProperty(DEFAULT_FACTORY_SECURITY_PROPERTY, value);
+ }
+ }
+
+ }
+
+ private static void mockReadResourceWithValidSubsystemTestFilePaths() {
+ Class> classToMock;
+ try {
+ classToMock = Class.forName("org.jboss.as.subsystem.test.AbstractSubsystemTest", true, AbstractSubsystemTest.class.getClassLoader());
+ } catch (ClassNotFoundException e) {
+ throw new NoClassDefFoundError(e.getMessage());
+ }
+ new MockUp<>(classToMock) {
+ @Mock
+ private String readResource(String name) throws IOException {
+ String namespaceUri = ElytronSubsystemSchema.CURRENT.get(Stability.DEFAULT).getNamespace().getUri();
+ String version = namespaceUri.substring(namespaceUri.lastIndexOf(':') + 1);
+ if (!name.contains(version + ".xml")) {
+ return ModelTestUtils.readResource(getClass(), name.replace("elytron", "legacy-elytron-subsystem"));
+ } else {
+ return ModelTestUtils.readResource(getClass(), name.replace("elytron", "elytron-subsystem"));
+ }
+ }
+ };
+ }
+
+ @BeforeClass
+ public static void updatePathsForSubsystemTestFiles() {
+ mockReadResourceWithValidSubsystemTestFilePaths();
+ }
+
+ @Parameters(name = "{0}")
+ public static Iterable parameters() {
+ return EnumSet.allOf(ElytronSubsystemSchema.class);
+ }
+
+ public ElytronMixedStabilitySubsystemParsingTestCase(ElytronSubsystemSchema schema) {
+ // mock the method that returns path to string for all except the current
+ super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension(), schema, ElytronSubsystemSchema.CURRENT.get(schema.getStability()));
+ }
+
+}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem100TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem100TestCase.java
deleted file mode 100644
index de77cbbb993..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem100TestCase.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem100TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem100TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-10.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
-}
-
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem10TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem10TestCase.java
deleted file mode 100644
index 3510c5fb980..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem10TestCase.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- * @author Tomaz Cerar
- */
-public class ElytronSubsystem10TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem10TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-1.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //super.compareXml(configId, original, marshalled);
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem110TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem110TestCase.java
deleted file mode 100644
index 36e4cb8c12e..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem110TestCase.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem110TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem110TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- public void testSchemaOfSubsystemTemplates() throws Exception {
- //
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-11.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
-}
-
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem11TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem11TestCase.java
deleted file mode 100644
index adc45577a20..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem11TestCase.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- * @author Tomaz Cerar
- */
-public class ElytronSubsystem11TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem11TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-1.1.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //super.compareXml(configId, original, marshalled);
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem12_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem12_0TestCase.java
deleted file mode 100644
index 0f558b1941d..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem12_0TestCase.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem12_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem12_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-12.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
-}
-
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem13_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem13_0TestCase.java
deleted file mode 100644
index 085d4701229..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem13_0TestCase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem13_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem13_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-13.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem14_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem14_0TestCase.java
deleted file mode 100644
index 4fd95a700b9..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem14_0TestCase.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem14_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem14_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-14.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
-
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem15_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem15_0TestCase.java
deleted file mode 100644
index f4958d925c2..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem15_0TestCase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem15_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem15_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-15.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem15_1TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem15_1TestCase.java
deleted file mode 100644
index 1c335839e22..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem15_1TestCase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem15_1TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem15_1TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-15.1.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem16_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem16_0TestCase.java
deleted file mode 100644
index ab4f87f7d80..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem16_0TestCase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem16_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem16_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-16.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem17_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem17_0TestCase.java
deleted file mode 100644
index 43c9b2edaed..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem17_0TestCase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem17_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem17_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-17.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem18_0TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem18_0TestCase.java
deleted file mode 100644
index b1c8306960e..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem18_0TestCase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-import org.jboss.as.controller.RunningMode;
-import org.jboss.as.subsystem.test.AdditionalInitialization;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem18_0TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem18_0TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("elytron-subsystem-18.0.xml");
- }
-
- @Override
- protected AdditionalInitialization createAdditionalInitialization() {
- // Our use of the expression=encryption resource requires kernel capability setup that TestEnvironment provides
- return new TestEnvironment(RunningMode.ADMIN_ONLY);
- }
-
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem1_2TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem1_2TestCase.java
deleted file mode 100644
index 8197827f621..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem1_2TestCase.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- * Tests of use of the wildfly-elytron_1_2.xsd.
- *
- * @author Brian Stansberry
- */
-public class ElytronSubsystem1_2TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem1_2TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-1.2.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //super.compareXml(configId, original, marshalled);
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem20TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem20TestCase.java
deleted file mode 100644
index 2258defc9a2..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem20TestCase.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- * @author Tomaz Cerar
- */
-public class ElytronSubsystem20TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem20TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- public void testSchemaOfSubsystemTemplates() throws Exception {
- //
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-2.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem30TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem30TestCase.java
deleted file mode 100644
index b41f7d2104f..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem30TestCase.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- * @author Farah Juma
- */
-public class ElytronSubsystem30TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem30TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-3.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem40TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem40TestCase.java
deleted file mode 100644
index 1fc8ab9ffd2..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem40TestCase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem40TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem40TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-4.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem50TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem50TestCase.java
deleted file mode 100644
index b678da9d919..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem50TestCase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem50TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem50TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-5.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem60TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem60TestCase.java
deleted file mode 100644
index c64ba70d341..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem60TestCase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem60TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem60TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-6.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem70TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem70TestCase.java
deleted file mode 100644
index ced64c4bde8..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem70TestCase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Darran Lofthouse
- */
-public class ElytronSubsystem70TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem70TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-7.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem80TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem80TestCase.java
deleted file mode 100644
index cd5ea9e223e..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem80TestCase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem80TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem80TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-8.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
diff --git a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem90TestCase.java b/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem90TestCase.java
deleted file mode 100644
index a6b8f606390..00000000000
--- a/elytron/src/test/java/org/wildfly/extension/elytron/ElytronSubsystem90TestCase.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright The WildFly Authors
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.wildfly.extension.elytron;
-
-import java.io.IOException;
-
-/**
- *
- * @author Farah Juma
- */
-public class ElytronSubsystem90TestCase extends AbstractElytronSubsystemBaseTest {
-
- public ElytronSubsystem90TestCase() {
- super(ElytronExtension.SUBSYSTEM_NAME, new ElytronExtension());
- }
-
- @Override
- protected String getSubsystemXml() throws IOException {
- return readResource("legacy-elytron-subsystem-9.0.xml");
- }
-
- @Override
- protected void compareXml(String configId, String original, String marshalled) throws Exception {
- //
- }
-}
-
diff --git a/pom.xml b/pom.xml
index a1fd726fba6..8d35344f81c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -228,6 +228,7 @@
${version.org.jboss.xnio}
5.8.1
3.10.0
+ 1.49
1.1.6
2.0.12
0.9.30
diff --git a/testbom/pom.xml b/testbom/pom.xml
index 27589b8a7f7..9adc7894bb3 100644
--- a/testbom/pom.xml
+++ b/testbom/pom.xml
@@ -281,6 +281,12 @@
${version.org.mockito}
test
+
+ org.jmockit
+ jmockit
+ ${version.org.jmockit}
+ test
+
org.syslog4j