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