@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.addCredential(operation, context.resolveExpressions(model)); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.addRealm(operation, context.resolveExpressions(model)); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.addSecureDeployment(operation, context.resolveExpressions(model)); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.removeCredential(operation); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.removeSecureDeployment(operation); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.removeRealm(operation); } }
public void addCredential(ModelNode operation, ModelNode model) { ModelNode credentials = credentialsFromOp(operation); if (!credentials.isDefined()) { credentials = new ModelNode(); } String credentialName = credentialNameFromOp(operation); if (!credentialName.contains(".")) { credentials.get(credentialName).set(model.get("value").asString()); } else { String[] parts = credentialName.split("\\."); String provider = parts[0]; String property = parts[1]; ModelNode credential = credentials.get(provider); if (!credential.isDefined()) { credential = new ModelNode(); } credential.get(property).set(model.get("value").asString()); credentials.set(provider, credential); } ModelNode deployment = this.secureDeployments.get(deploymentNameFromOp(operation)); deployment.get(CREDENTIALS_JSON_NAME).set(credentials); }
public void updateCredential(ModelNode operation, String attrName, ModelNode resolvedValue) { ModelNode credentials = credentialsFromOp(operation); if (!credentials.isDefined()) { throw new RuntimeException("Can not update credential. No credential defined for deployment in op " + operation.toString()); } String credentialName = credentialNameFromOp(operation); credentials.get(credentialName).set(resolvedValue); }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); KeycloakAdapterConfigService service = KeycloakAdapterConfigService.getInstance(); if (service.isSecureDeployment(deploymentUnit) && service.isDeploymentConfigured(deploymentUnit)) { addKeycloakAuthData(phaseContext, service); } addConfigurationListener(phaseContext); // FYI, Undertow Extension will find deployments that have auth-method set to KEYCLOAK // todo notsure if we need this // addSecurityDomain(deploymentUnit, service); }
public void removeSecureDeployment(ModelNode operation) { this.secureDeployments.remove(deploymentNameFromOp(operation)); }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, AbstractWriteAttributeHandler.HandbackHolder<KeycloakAdapterConfigService> hh) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.updateCredential(operation, attributeName, resolvedValue); hh.setHandback(ckService); return false; }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); String deploymentName = deploymentUnit.getName(); KeycloakAdapterConfigService service = KeycloakAdapterConfigService.getInstance(); if (service.isSecureDeployment(deploymentName)) { addKeycloakAuthData(phaseContext, deploymentName, service); } // FYI, Undertow Extension will find deployments that have auth-method set to KEYCLOAK // todo notsure if we need this // addSecurityDomain(deploymentUnit, service); }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<KeycloakAdapterConfigService> hh) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.updateRealm(operation, attributeName, resolvedValue); hh.setHandback(ckService); return false; }
@Override protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName, ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<KeycloakAdapterConfigService> hh) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); hh.setHandback(ckService); ckService.updateSecureDeployment(operation, attributeName, resolvedValue); return false; }
private void addKeycloakAuthData(DeploymentPhaseContext phaseContext, String deploymentName, KeycloakAdapterConfigService service) throws DeploymentUnitProcessingException { DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); if (warMetaData == null) { throw new DeploymentUnitProcessingException("WarMetaData not found for " + deploymentName + ". Make sure you have specified a WAR as your secure-deployment in the Keycloak subsystem."); } addJSONData(service.getJSON(deploymentName), warMetaData); JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData(); if (webMetaData == null) { webMetaData = new JBossWebMetaData(); warMetaData.setMergedJBossWebMetaData(webMetaData); } LoginConfigMetaData loginConfig = webMetaData.getLoginConfig(); if (loginConfig == null) { loginConfig = new LoginConfigMetaData(); webMetaData.setLoginConfig(loginConfig); } loginConfig.setAuthMethod("KEYCLOAK"); loginConfig.setRealmName(service.getRealmName(deploymentName)); KeycloakLogger.ROOT_LOGGER.deploymentSecured(deploymentName); }
@Override public void start(StartContext context) throws StartException { KeycloakAdapterConfigService adapterConfigService = KeycloakAdapterConfigService.getInstance(); String config = adapterConfigService.getJSON(this.factoryName); this.httpAuthenticationFactory = new KeycloakHttpServerAuthenticationMechanismFactory(createDeploymentContext(config.getBytes())); }
public void addRedirectRewriteRule(ModelNode operation, ModelNode model) { ModelNode redirectRewritesRules = redirectRewriteRuleFromOp(operation); if (!redirectRewritesRules.isDefined()) { redirectRewritesRules = new ModelNode(); } String redirectRewriteRuleName = redirectRewriteRule(operation); if (!redirectRewriteRuleName.contains(".")) { redirectRewritesRules.get(redirectRewriteRuleName).set(model.get("value").asString()); } else { String[] parts = redirectRewriteRuleName.split("\\."); String provider = parts[0]; String property = parts[1]; ModelNode redirectRewriteRule = redirectRewritesRules.get(provider); if (!redirectRewriteRule.isDefined()) { redirectRewriteRule = new ModelNode(); } redirectRewriteRule.get(property).set(model.get("value").asString()); redirectRewritesRules.set(provider, redirectRewriteRule); } ModelNode deployment = this.secureDeployments.get(deploymentNameFromOp(operation)); deployment.get(REDIRECT_REWRITE_RULE_JSON_NAME).set(redirectRewritesRules); }
public void updateRedirectRewriteRule(ModelNode operation, String attrName, ModelNode resolvedValue) { ModelNode redirectRewritesRules = redirectRewriteRuleFromOp(operation); if (!redirectRewritesRules.isDefined()) { throw new RuntimeException("Can not update redirect rewrite rule. No rules defined for deployment in op " + operation.toString()); } String ruleName = credentialNameFromOp(operation); redirectRewritesRules.get(ruleName).set(resolvedValue); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.removeRedirectRewriteRule(operation); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance(); ckService.addRedirectRewriteRule(operation, context.resolveExpressions(model)); }