Save This Page
Home » jboss-5.0.0.CR1-src » org » jboss » security » auth » spi » [javadoc | source]
org.jboss.security.auth.spi
public class: LdapLoginModule [javadoc | source]
java.lang.Object
   org.jboss.security.auth.spi.AbstractServerLoginModule
      org.jboss.security.auth.spi.UsernamePasswordLoginModule
         org.jboss.security.auth.spi.LdapLoginModule

All Implemented Interfaces:
    LoginModule

An implementation of LoginModule that authenticates against an LDAP server using JNDI, based on the configuration properties.

The LoginModule options include whatever options your LDAP JNDI provider supports. Examples of standard property names are:

The Context.SECURITY_PRINCIPAL is set to the distinguished name of the user as obtained by the callback handler and the Context.SECURITY_CREDENTIALS property is either set to the String password or Object credential depending on the useObjectCredential option.

Additional module properties include:

A sample login config:

testLdap {
org.jboss.security.auth.spi.LdapLoginModule required
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
java.naming.provider.url="ldap://ldaphost.jboss.org:1389/"
java.naming.security.authentication=simple
principalDNPrefix=uid=
uidAttributeID=userid
roleAttributeID=roleName
principalDNSuffix=,ou=People,o=jboss.org
rolesCtxDN=cn=JBossSX Tests,ou=Roles,o=jboss.org
};

testLdap2 {
org.jboss.security.auth.spi.LdapLoginModule required
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
java.naming.provider.url="ldap://ldaphost.jboss.org:1389/"
java.naming.security.authentication=simple
principalDNPrefix=uid=
uidAttributeID=userid
roleAttributeID=roleName
principalDNSuffix=,ou=People,o=jboss.org
userRolesCtxDNAttributeName=ou=Roles,dc=user1,dc=com
};

testLdapToActiveDirectory {
org.jboss.security.auth.spi.LdapLoginModule required
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
java.naming.provider.url="ldap://ldaphost.jboss.org:1389/"
java.naming.security.authentication=simple
rolesCtxDN=cn=Users,dc=ldaphost,dc=jboss,dc=org
uidAttributeID=userPrincipalName
roleAttributeID=memberOf
roleAttributeIsDN=true
roleNameAttributeID=name
};
Fields inherited from org.jboss.security.auth.spi.AbstractServerLoginModule:
subject,  callbackHandler,  sharedState,  options,  log,  useFirstPass,  loginOk
Constructor:
 public LdapLoginModule() 
Method from org.jboss.security.auth.spi.LdapLoginModule Summary:
getRoleSets,   getUsersPassword,   validatePassword
Methods from org.jboss.security.auth.spi.UsernamePasswordLoginModule:
createPasswordHash,   getCredentials,   getIdentity,   getUnauthenticatedIdentity,   getUsername,   getUsernameAndPassword,   getUsersPassword,   initialize,   login,   validatePassword
Methods from org.jboss.security.auth.spi.AbstractServerLoginModule:
abort,   commit,   createGroup,   getIdentity,   getRoleSets,   getUseFirstPass,   initialize,   login,   logout
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.jboss.security.auth.spi.LdapLoginModule Detail:
 protected Group[] getRoleSets() throws LoginException 
    Overriden by subclasses to return the Groups that correspond to the to the role sets assigned to the user. Subclasses should create at least a Group named "Roles" that contains the roles assigned to the user. A second common group is "CallerPrincipal" that provides the application identity of the user rather than the security domain identity.
 protected String getUsersPassword() throws LoginException 
    Overriden to return an empty password string as typically one cannot obtain a user's password. We also override the validatePassword so this is ok.
 protected boolean validatePassword(String inputPassword,
    String expectedPassword) 
    Validate the inputPassword by creating a ldap InitialContext with the SECURITY_CREDENTIALS set to the password.