static boolean isElytronEnabled(DeploymentPhaseContext phaseContext) { String securityDomain = getSecurityDomain(phaseContext.getDeploymentUnit()); ServiceName serviceName = ServiceName.parse(new StringBuilder(UNDERTOW_APPLICATION_SECURITY_DOMAIN).append(securityDomain).toString()); return phaseContext.getServiceRegistry().getService(serviceName) != null; }
@Override protected void addPlatformSpecificModules(DeploymentPhaseContext phaseContext, ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) { if (isElytronEnabled(phaseContext)) { moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_ELYTRON_ADAPTER, true, false, false, false)); } else { moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_WILDFLY_ADAPTER, false, false, true, false)); moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_UNDERTOW_ADAPTER, false, false, false, false)); } } }
private void addConfigurationListener(DeploymentPhaseContext phaseContext) { DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); if (warMetaData == null) { return; } JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData(); if (webMetaData == null) { webMetaData = new JBossWebMetaData(); warMetaData.setMergedJBossWebMetaData(webMetaData); } LoginConfigMetaData loginConfig = webMetaData.getLoginConfig(); if (loginConfig == null) { return; } if (!loginConfig.getAuthMethod().equals("KEYCLOAK-SAML")) { return; } if (isElytronEnabled(phaseContext)) { ListenerMetaData listenerMetaData = new ListenerMetaData(); listenerMetaData.setListenerClass(KeycloakConfigurationServletListener.class.getName()); webMetaData.getListeners().add(listenerMetaData); } } }