public ProviderConfigPropertyBuilder property() { return new ProviderConfigPropertyBuilder(); }
public static ProviderConfigurationBuilder create() { return new ProviderConfigurationBuilder(); }
public ProviderConfigurationBuilder property(String name, String label, String helpText, String type, Object defaultValue, List<String> options, boolean secret) { ProviderConfigProperty property = new ProviderConfigProperty(name, label, helpText, type, defaultValue); property.setOptions(options); property.setSecret(secret); properties.add(property); return this; } public ProviderConfigurationBuilder property(String name, String label, String helpText, String type, Object defaultValue, List<String> options) {
/** * Add the current property, and start building the next one * * @return */ public ProviderConfigurationBuilder add() { ProviderConfigProperty property = new ProviderConfigProperty(); property.setName(name); property.setLabel(label); property.setHelpText(helpText); property.setType(type); property.setDefaultValue(defaultValue); property.setOptions(options); property.setSecret(secret); ProviderConfigurationBuilder.this.properties.add(property); return ProviderConfigurationBuilder.this; }
@Override public List<ProviderConfigProperty> getConfigProperties() { ProviderConfigProperty prop1 = new ProviderConfigProperty(); prop1.setName("prop1"); prop1.setLabel("Prop1"); prop1.setDefaultValue("prop1Default"); prop1.setHelpText("Prop1 HelpText"); prop1.setType(ProviderConfigProperty.STRING_TYPE); ProviderConfigProperty prop2 = new ProviderConfigProperty(); prop2.setName("prop2"); prop2.setLabel("Prop2"); prop2.setDefaultValue("true"); prop2.setHelpText("Prop2 HelpText"); prop2.setType(ProviderConfigProperty.BOOLEAN_TYPE); return Arrays.asList(prop1, prop2); } }
private static List<ProviderConfigProperty> getConfigProps() { return ProviderConfigurationBuilder.create() .property().name(KerberosConstants.KERBEROS_REALM) .label("kerberos-realm") .helpText("kerberos-realm.tooltip") .type(ProviderConfigProperty.STRING_TYPE) .add() .property().name(KerberosConstants.SERVER_PRINCIPAL) .label("server-principal") .helpText("server-principal.tooltip") .type(ProviderConfigProperty.STRING_TYPE) .add() .property().name(KerberosConstants.KEYTAB) .label("keytab") .helpText("keytab.tooltip") .type(ProviderConfigProperty.STRING_TYPE) .add() .property().name(KerberosConstants.DEBUG) .label("debug") .helpText("debug.tooltip") .type(ProviderConfigProperty.BOOLEAN_TYPE) .defaultValue("false") .add() .property().name(KerberosConstants.ALLOW_PASSWORD_AUTHENTICATION) .label("allow-password-authentication") .helpText("allow-password-authentication.tooltip") .type(ProviderConfigProperty.BOOLEAN_TYPE) .defaultValue("false") .add() .property().name(LDAPConstants.EDIT_MODE)
@Override public void postInit(KeycloakSessionFactory factory) { super.postInit(factory); userSecretAdapter = factory.getProviderFactory(UserSecretAdapter.class).create(null); }
@Before public void before() { String providerId = getProviderId(); ServiceLoader<AuditProviderFactory> factories = ServiceLoader.load(AuditProviderFactory.class); for (AuditProviderFactory f : factories) { if (f.getId().equals(providerId)) { factory = f; factory.init(Config.scope("audit", providerId)); } } provider = factory.create(null); }
public ProviderConfigurationBuilder property(String name, String label, String helpText, String type, Object defaultValue, List<String> options) { ProviderConfigProperty property = new ProviderConfigProperty(name, label, helpText, type, defaultValue); property.setOptions(options); properties.add(property); return this; }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); KeycloakAdapterConfigService config = KeycloakAdapterConfigService.INSTANCE; String deploymentName = deploymentUnit.getName(); if (config.isKeycloakServerDeployment(deploymentName)) { return; } KeycloakDeploymentInfo info = KeycloakProviderDependencyProcessor.getKeycloakProviderDeploymentInfo(deploymentUnit); if (info.isProvider()) { logger.infov("Deploying Keycloak provider: {0}", deploymentUnit.getName()); final Module module = deploymentUnit.getAttachment(Attachments.MODULE); ProviderManager pm = new ProviderManager(info, module.getClassLoader()); ProviderManagerRegistry.SINGLETON.deploy(pm); deploymentUnit.putAttachment(ATTACHMENT_KEY, pm); } }
@Override protected void generateStatementsImpl() throws CustomChangeException { List<ProviderFactory> factories = kcSession.getKeycloakSessionFactory().getProviderFactories(UserStorageProvider.class); for (ProviderFactory factory : factories) { if (!factory.getId().equals(LDAPConstants.LDAP_PROVIDER)) { convertFedProviderToComponent(factory.getId(), null); } } }
public static void setLdapPassword(ProviderSession providerSession, RealmModel realm, String username, String password) { // Update password directly in ldap. It's workaround, but LDIF import doesn't seem to work on windows for ApacheDS try { IdentityManager identityManager = new PicketlinkAuthenticationProvider(providerSession.getProvider(IdentityManagerProvider.class)).getIdentityManager(realm); User user = BasicModel.getUser(identityManager, username); identityManager.updateCredential(user, new Password(password.toCharArray())); } catch (Exception e) { throw new RuntimeException(e); } } }
public static AuthenticationProviderManager getManager(RealmModel realm, ProviderSession providerSession) { Iterable<AuthenticationProvider> providers = providerSession.getAllProviders(AuthenticationProvider.class); Map<String, AuthenticationProvider> providersMap = new HashMap<String, AuthenticationProvider>(); for (AuthenticationProvider provider : providers) { providersMap.put(provider.getName(), provider); } return new AuthenticationProviderManager(realm, providersMap); }
@After public void after() { provider.clear(); provider.close(); factory.close(); }
@Override public void undeploy(DeploymentUnit context) { ProviderManager pm = context.getAttachment(ATTACHMENT_KEY); if (pm != null) { logger.infov("Undeploying Keycloak provider: {0}", context.getName()); ProviderManagerRegistry.SINGLETON.undeploy(pm); context.removeAttachment(ATTACHMENT_KEY); } } }
@Override public ProviderLoader create(KeycloakDeploymentInfo info, ClassLoader baseClassLoader, String resource) { try { Module module = Module.getContextModuleLoader().loadModule(ModuleIdentifier.fromString(resource)); ModuleClassLoader classLoader = module.getClassLoader(); return new DefaultProviderLoader(info, classLoader); } catch (Exception e) { throw new RuntimeException(e); } }
@Override public void postInit(KeycloakSessionFactory factory) { UserSecretAdapter userSecretAdapter = factory.getProviderFactory(UserSecretAdapter.class).create(null); singleton = new STSUsernamePasswordForm(userSecretAdapter); }
@Override public void postInit(KeycloakSessionFactory factory) { super.postInit(factory); claimName = EnvProperties.getEnvOrSysProp("STS_USER_SECRET_CLAIM_NAME", "user-secret"); userSecretAdapter = factory.getProviderFactory(UserSecretAdapter.class).create(null); }
@Test public void clearOld() { provider.onEvent(create(System.currentTimeMillis() - 30000, EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis() - 20000, EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis(), EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis(), EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis() - 30000, EventType.LOGIN, "realmId2", "clientId", "userId", "127.0.0.1", "error")); provider.close(); provider = factory.create(null); provider.clear("realmId", System.currentTimeMillis() - 10000); Assert.assertEquals(3, provider.createQuery().getResultList().size()); }
@Test public void clear() { provider.onEvent(create(System.currentTimeMillis() - 30000, EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis() - 20000, EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis(), EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis(), EventType.LOGIN, "realmId", "clientId", "userId", "127.0.0.1", "error")); provider.onEvent(create(System.currentTimeMillis() - 30000, EventType.LOGIN, "realmId2", "clientId", "userId", "127.0.0.1", "error")); provider.close(); provider = factory.create(null); provider.clear("realmId"); Assert.assertEquals(1, provider.createQuery().getResultList().size()); }