in plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/AuthenticationParameterPage.java [1150:1282]
public void mergeLdapUrlToParameters( LdapUrl ldapUrl, ConnectionParameter parameter )
{
// bind user and password, none if empty or absent
String principal = ldapUrl.getExtensionValue( X_BIND_USER );
if ( principal == null )
{
principal = StringUtils.EMPTY;
}
parameter.setBindPrincipal( principal );
String password = ldapUrl.getExtensionValue( X_BIND_PASSWORD );
parameter.setBindPassword( password );
// auth method, simple if unknown or absent and X-BIND-USER is present, else anonymous
String authMethod = ldapUrl.getExtensionValue( X_AUTH_METHOD );
if ( StringUtils.isNotEmpty( authMethod ) && X_AUTH_METHOD_ANONYMOUS.equalsIgnoreCase( authMethod ) )
{
parameter.setAuthMethod( ConnectionParameter.AuthenticationMethod.NONE );
}
else if ( StringUtils.isNotEmpty( authMethod ) && X_AUTH_METHOD_SIMPLE.equalsIgnoreCase( authMethod ) )
{
parameter.setAuthMethod( ConnectionParameter.AuthenticationMethod.SIMPLE );
}
else if ( StringUtils.isNotEmpty( authMethod ) && X_AUTH_METHOD_DIGEST_MD5.equalsIgnoreCase( authMethod ) )
{
parameter.setAuthMethod( ConnectionParameter.AuthenticationMethod.SASL_DIGEST_MD5 );
}
else if ( StringUtils.isNotEmpty( authMethod ) && X_AUTH_METHOD_CRAM_MD5.equalsIgnoreCase( authMethod ) )
{
parameter.setAuthMethod( ConnectionParameter.AuthenticationMethod.SASL_CRAM_MD5 );
}
else if ( StringUtils.isNotEmpty( parameter.getBindPrincipal() ) )
{
parameter.setAuthMethod( ConnectionParameter.AuthenticationMethod.SIMPLE );
}
else
{
parameter.setAuthMethod( ConnectionParameter.AuthenticationMethod.NONE );
}
// SASL realm, none if empty or absent
String saslRealm = ldapUrl.getExtensionValue( X_SASL_REALM );
if ( StringUtils.isNotEmpty( saslRealm ) )
{
parameter.setSaslRealm( saslRealm );
}
// SASL QOP, default to AUTH
String saslQop = ldapUrl.getExtensionValue( X_SASL_QOP );
if ( StringUtils.isNotEmpty( saslQop ) && X_SASL_QOP_AUTH_INT.equalsIgnoreCase( saslQop ) )
{
parameter.setSaslQop( SaslQoP.AUTH_INT );
}
else if ( StringUtils.isNotEmpty( saslQop ) && X_SASL_QOP_AUTH_INT_PRIV.equalsIgnoreCase( saslQop ) )
{
parameter.setSaslQop( SaslQoP.AUTH_CONF );
}
else
{
parameter.setSaslQop( SaslQoP.AUTH );
}
// SASL security strength, default to HIGH
String saslSecStrength = ldapUrl.getExtensionValue( X_SASL_SEC_STRENGTH );
if ( StringUtils.isNotEmpty( saslSecStrength )
&& X_SASL_SEC_STRENGTH_MEDIUM.equalsIgnoreCase( saslSecStrength ) )
{
parameter.setSaslSecurityStrength( SaslSecurityStrength.MEDIUM );
}
else if ( StringUtils.isNotEmpty( saslSecStrength )
&& X_SASL_SEC_STRENGTH_LOW.equalsIgnoreCase( saslSecStrength ) )
{
parameter.setSaslSecurityStrength( SaslSecurityStrength.LOW );
}
else
{
parameter.setSaslSecurityStrength( SaslSecurityStrength.HIGH );
}
// SASL mutual authentication, default to true
Extension saslNoMutualAuth = ldapUrl.getExtension( X_SASL_NO_MUTUAL_AUTH );
parameter.setSaslMutualAuthentication( saslNoMutualAuth == null );
// KRB5 credentials
String krb5CredentialsConf = ldapUrl.getExtensionValue( X_KRB5_CREDENTIALS_CONF );
if ( StringUtils.isNotEmpty( krb5CredentialsConf )
&& X_KRB5_CREDENTIALS_CONF_OBTAIN_TGT.equalsIgnoreCase( krb5CredentialsConf ) )
{
parameter.setKrb5CredentialConfiguration( Krb5CredentialConfiguration.OBTAIN_TGT );
}
else
{
parameter.setKrb5CredentialConfiguration( Krb5CredentialConfiguration.USE_NATIVE );
}
// KRB5 configuration
String krb5Config = ldapUrl.getExtensionValue( X_KRB5_CONFIG );
if ( StringUtils.isNotEmpty( krb5Config ) && X_KRB5_CONFIG_FILE.equalsIgnoreCase( krb5Config ) )
{
parameter.setKrb5Configuration( Krb5Configuration.FILE );
}
else if ( StringUtils.isNotEmpty( krb5Config ) && X_KRB5_CONFIG_MANUAL.equalsIgnoreCase( krb5Config ) )
{
parameter.setKrb5Configuration( Krb5Configuration.MANUAL );
}
else
{
parameter.setKrb5Configuration( Krb5Configuration.DEFAULT );
}
parameter.setKrb5ConfigurationFile( ldapUrl.getExtensionValue( X_KRB5_CONFIG_FILE_FILE ) );
parameter.setKrb5Realm( ldapUrl.getExtensionValue( X_KRB5_CONFIG_MANUAL_REALM ) );
parameter.setKrb5KdcHost( ldapUrl.getExtensionValue( X_KRB5_CONFIG_MANUAL_KDC_HOST ) );
String kdcPort = ldapUrl.getExtensionValue( X_KRB5_CONFIG_MANUAL_KDC_PORT );
try
{
parameter.setKrb5KdcPort( Integer.valueOf( kdcPort ) );
}
catch ( NumberFormatException e )
{
parameter.setKrb5KdcPort( 88 );
}
}