use of org.pac4j.config.ldaptive.LdapAuthenticationProperties in project pac4j by pac4j.
the class LdapAuthenticatorBuilder method tryBuildLdapAuthenticator.
public void tryBuildLdapAuthenticator(final Map<String, Authenticator> authenticators) {
for (int i = 0; i <= MAX_NUM_AUTHENTICATORS; i++) {
final String type = getProperty(LDAP_TYPE, i);
if (isNotBlank(type)) {
final LdapAuthenticationProperties ldapProp = buildLdapProperties(i);
final org.ldaptive.auth.Authenticator ldaptiveAuthenticator = LdaptiveAuthenticatorBuilder.getAuthenticator(ldapProp);
final LdapProfileService authenticator = new LdapProfileService(ldaptiveAuthenticator, getProperty(LDAP_ATTRIBUTES, i));
final PooledConnectionFactoryManager pooledConnectionFactoryManager = (PooledConnectionFactoryManager) ldaptiveAuthenticator.getAuthenticationHandler();
authenticator.setConnectionFactory(pooledConnectionFactoryManager.getConnectionFactory());
authenticator.setUsersDn(getProperty(LDAP_USERS_DN, i));
if (containsProperty(LDAP_PRINCIPAL_ATTRIBUTE_ID, i)) {
authenticator.setUsernameAttribute(getProperty(LDAP_PRINCIPAL_ATTRIBUTE_ID, i));
}
if (containsProperty(LDAP_PRINCIPAL_ATTRIBUTE_PASSWORD, i)) {
authenticator.setPasswordAttribute(getProperty(LDAP_PRINCIPAL_ATTRIBUTE_PASSWORD, i));
}
authenticators.put(concat("ldap", i), authenticator);
}
}
}
use of org.pac4j.config.ldaptive.LdapAuthenticationProperties in project pac4j by pac4j.
the class LdapAuthenticatorBuilder method buildLdapProperties.
private LdapAuthenticationProperties buildLdapProperties(final int i) {
final LdapAuthenticationProperties ldapProp = new LdapAuthenticationProperties();
final String type = getProperty(LDAP_TYPE, i);
ldapProp.setType(LdapAuthenticationProperties.AuthenticationTypes.valueOf(type.toUpperCase()));
ldapProp.setDnFormat(getProperty(LDAP_DN_FORMAT, i));
if (containsProperty(LDAP_PRINCIPAL_ATTRIBUTE_PASSWORD, i)) {
ldapProp.setPrincipalAttributePassword(getProperty(LDAP_PRINCIPAL_ATTRIBUTE_PASSWORD, i));
}
if (containsProperty(LDAP_SUBTREE_SEARCH, i)) {
ldapProp.setSubtreeSearch(getPropertyAsBoolean(LDAP_SUBTREE_SEARCH, i));
}
ldapProp.setBaseDn(getProperty(LDAP_USERS_DN, i));
ldapProp.setUserFilter(getProperty(LDAP_USER_FILTER, i));
if (containsProperty(LDAP_ENHANCE_WITH_ENTRY_RESOLVER, i)) {
ldapProp.setEnhanceWithEntryResolver(getPropertyAsBoolean(LDAP_ENHANCE_WITH_ENTRY_RESOLVER, i));
}
ldapProp.setLdapUrl(getProperty(LDAP_URL, i));
if (containsProperty(LDAP_TRUST_CERTIFICATES, i)) {
ldapProp.setTrustCertificates(getProperty(LDAP_TRUST_CERTIFICATES, i));
}
if (containsProperty(LDAP_KEYSTORE, i)) {
ldapProp.setKeystore(getProperty(LDAP_KEYSTORE, i));
}
if (containsProperty(LDAP_KEYSTORE_PASSWORD, i)) {
ldapProp.setKeystorePassword(getProperty(LDAP_KEYSTORE_PASSWORD, i));
}
if (containsProperty(LDAP_KEYSTORE_TYPE, i)) {
ldapProp.setKeystoreType(getProperty(LDAP_KEYSTORE_TYPE, i));
}
if (containsProperty(LDAP_MIN_POOL_SIZE, i)) {
ldapProp.setMinPoolSize(getPropertyAsInteger(LDAP_MIN_POOL_SIZE, i));
}
if (containsProperty(LDAP_MAX_POOL_SIZE, i)) {
ldapProp.setMinPoolSize(getPropertyAsInteger(LDAP_MAX_POOL_SIZE, i));
}
if (containsProperty(LDAP_POOL_PASSIVATOR, i)) {
ldapProp.setPoolPassivator(getProperty(LDAP_POOL_PASSIVATOR, i));
}
if (containsProperty(LDAP_VALIDATE_ON_CHECKOUT, i)) {
ldapProp.setValidateOnCheckout(getPropertyAsBoolean(LDAP_VALIDATE_ON_CHECKOUT, i));
}
if (containsProperty(LDAP_VALIDATE_PERIODICALLY, i)) {
ldapProp.setValidatePeriodically(getPropertyAsBoolean(LDAP_VALIDATE_PERIODICALLY, i));
}
if (containsProperty(LDAP_VALIDATE_PERIOD, i)) {
ldapProp.setValidatePeriod(getPropertyAsLong(LDAP_VALIDATE_PERIOD, i));
}
if (containsProperty(LDAP_FAIL_FAST, i)) {
ldapProp.setFailFast(getPropertyAsBoolean(LDAP_FAIL_FAST, i));
}
if (containsProperty(LDAP_IDLE_TIME, i)) {
ldapProp.setIdleTime(getPropertyAsLong(LDAP_IDLE_TIME, i));
}
if (containsProperty(LDAP_PRUNE_PERIOD, i)) {
ldapProp.setPrunePeriod(getPropertyAsLong(LDAP_PRUNE_PERIOD, i));
}
if (containsProperty(LDAP_BLOCK_WAIT_TIME, i)) {
ldapProp.setBlockWaitTime(getPropertyAsLong(LDAP_BLOCK_WAIT_TIME, i));
}
if (containsProperty(LDAP_USE_SSL, i)) {
ldapProp.setUseSsl(getPropertyAsBoolean(LDAP_USE_SSL, i));
}
if (containsProperty(LDAP_USE_START_TLS, i)) {
ldapProp.setUseStartTls(getPropertyAsBoolean(LDAP_USE_START_TLS, i));
}
if (containsProperty(LDAP_CONNECT_TIMEOUT, i)) {
ldapProp.setConnectTimeout(getPropertyAsLong(LDAP_CONNECT_TIMEOUT, i));
}
if (containsProperty(LDAP_PROVIDER_CLASS, i)) {
ldapProp.setProviderClass(getProperty(LDAP_PROVIDER_CLASS, i));
}
if (containsProperty(LDAP_ALLOW_MULTIPLE_DNS, i)) {
ldapProp.setAllowMultipleDns(getPropertyAsBoolean(LDAP_ALLOW_MULTIPLE_DNS, i));
}
if (containsProperty(LDAP_BIND_DN, i)) {
ldapProp.setBindDn(getProperty(LDAP_BIND_DN, i));
}
if (containsProperty(LDAP_BIND_CREDENTIAL, i)) {
ldapProp.setBindCredential(getProperty(LDAP_BIND_CREDENTIAL, i));
}
if (containsProperty(LDAP_SASL_REALM, i)) {
ldapProp.setSaslRealm(getProperty(LDAP_SASL_REALM, i));
}
if (containsProperty(LDAP_SASL_MECHANISM, i)) {
ldapProp.setSaslMechanism(Mechanism.valueOf(getProperty(LDAP_SASL_MECHANISM, i).toUpperCase()));
}
if (containsProperty(LDAP_SASL_AUTHORIZATION_ID, i)) {
ldapProp.setSaslAuthorizationId(getProperty(LDAP_SASL_AUTHORIZATION_ID, i));
}
if (containsProperty(LDAP_SASL_SECURITY_STRENGTH, i)) {
ldapProp.setSaslSecurityStrength(SecurityStrength.valueOf(getProperty(LDAP_SASL_SECURITY_STRENGTH, i).toUpperCase()));
}
if (containsProperty(LDAP_SASL_QUALITY_OF_PROTECTION, i)) {
ldapProp.setSaslQualityOfProtection(QualityOfProtection.valueOf(getProperty(LDAP_SASL_QUALITY_OF_PROTECTION, i).toUpperCase()));
}
return ldapProp;
}
Aggregations