@Override
  public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
    final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();

    if (!KeycloakAdapterConfigService.getInstance().isSecureDeployment(deploymentUnit)) {
      WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY);
      if (warMetaData == null) {
        return;
      }
      JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
      if (webMetaData == null) {
        return;
      }
      LoginConfigMetaData loginConfig = webMetaData.getLoginConfig();
      if (loginConfig == null) return;
      if (loginConfig.getAuthMethod() == null) return;
      if (!loginConfig.getAuthMethod().equals("KEYCLOAK")) return;
    }

    final ModuleSpecification moduleSpecification =
        deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION);
    final ModuleLoader moduleLoader = Module.getBootModuleLoader();
    addCommonModules(moduleSpecification, moduleLoader);
    addPlatformSpecificModules(moduleSpecification, moduleLoader);
  }
  @Test
  public void testJsonFromSignedJWTCredentials() {
    KeycloakAdapterConfigService service = KeycloakAdapterConfigService.getInstance();

    PathAddress addr =
        PathAddress.pathAddress(
            PathElement.pathElement("subsystem", "keycloak"),
            PathElement.pathElement("secure-deployment", "foo"));
    ModelNode deploymentOp = new ModelNode();
    deploymentOp.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
    ModelNode deployment = new ModelNode();
    deployment.get("realm").set("demo");
    deployment.get("resource").set("customer-portal");
    service.addSecureDeployment(deploymentOp, deployment);

    addCredential(addr, service, "secret", "secret1");
    addCredential(addr, service, "jwt.client-keystore-file", "/tmp/foo.jks");
    addCredential(addr, service, "jwt.token-timeout", "10");

    System.out.println("Deployment: " + service.getJSON("foo"));
  }
Exemplo n.º 3
0
 @Override
 protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model)
     throws OperationFailedException {
   KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
   ckService.removeRealm(operation);
 }