LDAP as a Data Source for Authentication

  1. Specify the URL of your LDAP server in Provider URL.

  2. Enter the relevant parameters for your LDAP server in Optional Settings.

  3. Click Finish.

Options:
  • Optional Settings
    • Search Base - Defines where in the directory the LDAP search starts.
      • CN - commonName.
      • L - localityName.
      • ST - stateOrProvinceName.
      • O - organizationName.
      • OU - organizationalUnitName.
      • C - countryName.
      • STREET - streetAddress.
      • DC - domainComponent.
      • UID - userid.
    • Suffix - Root, data object at the top of the LDAP data structure.
    • Security Protocol -  Optional Protocol Security (e.g. SASL, SSL)
    • Security Authentication - Standard Security Protocol (none / simple / SASL)
  • Test Connection -  Personal username and password. Required only to test the connection.
Result:
  • Project Management > Business Objects - The ExampleAuthenticationProvider.java class is generated.

    package com.company.example.business;
    
    import javax.naming.directory.DirContext;
    
    import com.xdev.security.authentication.Authenticator;
    import com.xdev.security.authentication.AuthenticatorProvider;
    import com.xdev.security.authentication.CredentialsUsernamePassword;
    import com.xdev.security.authentication.ldap.LDAPAuthenticator;
    import com.xdev.security.authentication.ldap.LDAPConfiguration.LDAPConfigurationBuilder;
    
    public class MyAuthenticationProvider implements AuthenticatorProvider<CredentialsUsernamePassword, DirContext> {
    	private static MyAuthenticationProvider INSTANCE;
    
    	public static MyAuthenticationProvider getInstance() {
    		if (INSTANCE == null) {
    			INSTANCE = new MyAuthenticationProvider();
    		}
    
    		return INSTANCE;
    	}
    
    	private LDAPAuthenticator authenticator;
    
    	private MyAuthenticationProvider() {
    	}
    
    	@Override
    	public Authenticator<CredentialsUsernamePassword, DirContext> provideAuthenticator() {
    		if (this.authenticator == null) {
    			this.authenticator = new LDAPAuthenticator(
    					new LDAPConfigurationBuilder("ldap://192.168.90.7:389/dc=yourDomainComponent,dc=local")
    							.searchBase("OU=SBSUsers,OU=Users,OU=MyBusiness").suffix("@YOURDOMAIN.LOCAL")
    							.securityAuthentication("simple").build());
    		}
    
    		return this.authenticator;
    	}
    }