Skip to content

Commit

Permalink
WFLY-19078 [Community] - Update the elytron-oidc-client subsystem par…
Browse files Browse the repository at this point in the history
…ser to enumerate schema versions
  • Loading branch information
PrarthonaPaul committed Mar 11, 2024
1 parent 6308993 commit 736b2ea
Show file tree
Hide file tree
Showing 27 changed files with 1,971 additions and 543 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@
<module name="org.jboss.staxmapper"/>
<module name="org.jboss.as.controller"/>
<module name="org.jboss.as.server"/>
<module name="org.jboss.as.version"/>
<module name="org.jboss.as.web-common"/>
<module name="org.jboss.metadata.common"/>
<module name="org.jboss.metadata.web"/>
<module name="org.jboss.modules"/>
<module name="org.jboss.msc"/>
<module name="org.jboss.logging"/>
<module name="org.wildfly.common"/>
<module name="org.wildfly.subsystem"/>
<module name="org.wildfly.security.elytron-http-oidc"/>
<module name="org.wildfly.security.elytron-private"/>
</dependencies>
Expand Down
4 changes: 4 additions & 0 deletions elytron-oidc-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -160,5 +160,9 @@
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly.core</groupId>
<artifactId>wildfly-subsystem</artifactId>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.ResourceDefinition;
import org.jboss.as.controller.ResourceRegistration;
import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.operations.validation.StringLengthValidator;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.registry.OperationEntry;
import org.jboss.as.version.Stability;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;

Expand All @@ -32,6 +34,7 @@
*/
class CredentialDefinition extends SimpleResourceDefinition {

static final ResourceRegistration PATH = ResourceRegistration.of(PathElement.pathElement(ElytronOidcDescriptionConstants.CREDENTIAL), Stability.DEFAULT);
protected static final SimpleAttributeDefinition SECRET =
new SimpleAttributeDefinitionBuilder(ElytronOidcDescriptionConstants.SECRET, ModelType.STRING, true)
.setAllowExpression(true)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
* Copyright The WildFly Authors
* SPDX-License-Identifier: Apache-2.0
*/

package org.wildfly.extension.elytron.oidc;

import org.jboss.as.controller.ModelVersion;
import org.jboss.as.controller.SubsystemModel;

/**
* Enumeration of elytron-oidc-client subsystem model versions.
* @author <a href="mailto:prpaul@redhat.com">Prarthona Paul</a>
*/

enum ElytronOidcClientSubsystemModel implements SubsystemModel {
VERSION_1_0_0(1, 0, 0),
VERSION_2_0_0(2, 0, 0),
VERSION_3_0_0_COMMUNITY(3, 0, 0),
;
static final ElytronOidcClientSubsystemModel CURRENT = VERSION_2_0_0;

private final ModelVersion version;

ElytronOidcClientSubsystemModel(int major, int minor, int micro) {
this.version = ModelVersion.create(major, minor, micro);
}

@Override
public ModelVersion getVersion() {
return this.version;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
* Copyright The WildFly Authors
* SPDX-License-Identifier: Apache-2.0
*/

package org.wildfly.extension.elytron.oidc;

import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.ResourceDefinition;
import org.jboss.as.controller.ResourceRegistration;
import org.jboss.as.controller.SubsystemRegistration;
import org.jboss.as.controller.descriptions.ParentResourceDescriptionResolver;
import org.jboss.as.controller.descriptions.SubsystemResourceDescriptionResolver;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.wildfly.subsystem.resource.ManagementResourceRegistrar;
import org.wildfly.subsystem.resource.ManagementResourceRegistrationContext;
import org.wildfly.subsystem.resource.ResourceDescriptor;
import org.wildfly.subsystem.resource.SubsystemResourceDefinitionRegistrar;

/**
* @author <a href="mailto:prpaul@redhat.com">Prarthona Paul</a>
*/

public class ElytronOidcClientSubsystemRegistrar implements SubsystemResourceDefinitionRegistrar {

static final String NAME = "elytron-oidc-client";
static final PathElement PATH = SubsystemResourceDefinitionRegistrar.pathElement(NAME);
static final ParentResourceDescriptionResolver RESOLVER = new SubsystemResourceDescriptionResolver(NAME, ElytronOidcClientSubsystemRegistrar.class);

@Override
public ManagementResourceRegistration register(SubsystemRegistration parent, ManagementResourceRegistrationContext context) {
parent.setHostCapable();
ManagementResourceRegistration registration = parent.registerSubsystemModel(ResourceDefinition.builder(ResourceRegistration.of(PATH), RESOLVER).build());
ResourceDescriptor descriptor = ResourceDescriptor.builder(RESOLVER).build();
ManagementResourceRegistrar.of(descriptor).register(registration);
return registration;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,26 @@

import org.jboss.as.controller.Extension;
import org.jboss.as.controller.ExtensionContext;
import org.jboss.as.controller.ModelVersion;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.PersistentResourceXMLDescriptionWriter;
import org.jboss.as.controller.SubsystemRegistration;
import org.jboss.as.controller.descriptions.ResourceDescriptionResolver;
import org.jboss.as.controller.descriptions.StandardResourceDescriptionResolver;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.parsing.ExtensionParsingContext;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.parsing.ExtensionParsingContext;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;


/**
* An {@link Extension} to add support for OpenID Connect.
*
* @author <a href="mailto:fjuma@redhat.com">Farah Juma</a>
*/
public class ElytronOidcExtension implements Extension {

/**
* The name of our subsystem within the model.
*/
public static final String SUBSYSTEM_NAME = "elytron-oidc-client";

protected static final PathElement SUBSYSTEM_PATH = PathElement.pathElement(SUBSYSTEM, SUBSYSTEM_NAME);

private static final String RESOURCE_NAME = ElytronOidcExtension.class.getPackage().getName() + ".LocalDescriptions";

protected static final ModelVersion VERSION_1_0_0 = ModelVersion.create(1, 0, 0);
protected static final ModelVersion VERSION_2_0_0 = ModelVersion.create(2, 0, 0);
private static final ModelVersion CURRENT_MODEL_VERSION = VERSION_2_0_0;

private static final ElytronOidcSubsystemParser_1_0 ELYTRON_OIDC_SUBSYSTEM_PARSER_1_0 = new ElytronOidcSubsystemParser_1_0();
private static final ElytronOidcSubsystemParser_2_0 CURRENT_PARSER = new ElytronOidcSubsystemParser_2_0();

static ResourceDescriptionResolver getResourceDescriptionResolver(final String... keyPrefixes) {
StringBuilder sb = new StringBuilder(SUBSYSTEM_NAME);
if (keyPrefixes != null) {
Expand All @@ -51,19 +39,19 @@ static ResourceDescriptionResolver getResourceDescriptionResolver(final String..
return new StandardResourceDescriptionResolver(sb.toString(), RESOURCE_NAME, ElytronOidcExtension.class.getClassLoader(),
true, false);
}

@Override
public void initialize(ExtensionContext context) {
final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, CURRENT_MODEL_VERSION);
subsystem.registerXMLElementWriter(CURRENT_PARSER);
final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, ElytronOidcClientSubsystemModel.CURRENT.getVersion());
subsystem.registerXMLElementWriter(new PersistentResourceXMLDescriptionWriter(ElytronOidcSubsystemSchema.CURRENT.get(context.getStability())));

final ManagementResourceRegistration registration = subsystem.registerSubsystemModel(new ElytronOidcSubsystemDefinition());
registration.registerOperationHandler(GenericSubsystemDescribeHandler.DEFINITION, GenericSubsystemDescribeHandler.INSTANCE);
}

public void initializeParsers(ExtensionParsingContext context) {
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, ElytronOidcSubsystemParser_1_0.NAMESPACE_1_0, ELYTRON_OIDC_SUBSYSTEM_PARSER_1_0);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, ElytronOidcSubsystemParser_2_0.NAMESPACE_2_0, CURRENT_PARSER);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, ElytronOidcSubsystemSchema.VERSION_1_0.getNamespace().toString(), ElytronOidcSubsystemSchema.VERSION_1_0);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, ElytronOidcSubsystemSchema.VERSION_2_0.getNamespace().toString(), ElytronOidcSubsystemSchema.VERSION_2_0);
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, ElytronOidcSubsystemSchema.VERSION_3_0_COMMUNITY.getNamespace().toString(), ElytronOidcSubsystemSchema.VERSION_3_0_COMMUNITY);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
import java.util.Collections;

import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.PersistentResourceDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.PersistentResourceDefinition;
import org.jboss.as.controller.ReloadRequiredRemoveStepHandler;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.capability.RuntimeCapability;
Expand Down

0 comments on commit 736b2ea

Please sign in to comment.