[jboss-user] [Security & JAAS/JBoss] - LdapLoginModule and role attribute not retrieved
l.pasquinelli
do-not-reply at jboss.com
Mon Aug 28 18:15:59 EDT 2006
Hi all,
It's about 2 days that i'm not able to resolve this problem. I'm trying to configure jboss to work with a webapplication that actually run under tomcat 5.5, but i'm not able to to configure LdapLoginModule.
The page that should appear after login is in a protected area associated with a role "Cataloguer". This role is associated in LDAP tree, as an attribute of each users as value of field initials.
When I try to login I receive an error 403 as the user isn't in the correct role.
I trace in a public jsp request.getUserPrincipal().getName() and request.isUserInRole("Cataloguer"), and I call this page after my login. I see that the user Principal is correct but the condition isUserInRole return false.
I activate trace information in log4j.xml for category "org.jboss.security.auth.spi" and this is the output .
2006-08-28 23:37:04,015 DEBUG [org.jboss.security.plugins.JaasSecurityManagerService] Added ldap-pdil, org.jboss.security.plugins.SecurityDomainContext at bc448b to map
2006-08-28 23:37:04,031 TRACE [org.jboss.security.auth.spi.LdapLoginModule] initialize, instance=@30675222
2006-08-28 23:37:04,031 TRACE [org.jboss.security.auth.spi.LdapLoginModule] login
2006-08-28 23:37:04,031 TRACE [org.jboss.security.auth.spi.LdapLoginModule] Logging into LDAP server, env={java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, principalDNPrefix=cn=, java.naming.security.principal=cn=Cataloguer_1,ou=people,dc=mycompany,dc=com, roleAttributeID=initials, matchOnUserDN=false, principalDNSuffix=,ou=people,dc=soloreti,dc=net, allowEmptyPasswords=false, java.naming.provider.url=ldap://localhost:389/, roleAttributeIsDN=false, java.naming.security.authentication=simple, java.naming.security.credentials=***}
2006-08-28 23:37:04,078 TRACE [org.jboss.security.auth.spi.LdapLoginModule] Logged into LDAP server, javax.naming.ldap.InitialLdapContext at 1ff83
2006-08-28 23:37:04,078 TRACE [org.jboss.security.auth.spi.LdapLoginModule] Rebind SECURITY_PRINCIPAL to: cn=Manager,dc=mycompany,dc=com2006-08-28 23:37:04,078 TRACE [org.jboss.security.auth.spi.LdapLoginModule] User 'Cataloguer_1' authenticated, loginOk=true
2006-08-28 23:37:04,078 TRACE [org.jboss.security.auth.spi.LdapLoginModule] commit, loginOk=true
My application define 4 private area, each of them are associated to a role; in my LDAP role information is the attribute "initials" of the user.
I configure an application policy under login-config.xml
<application-policy name="ldap-pdil">
<!--<login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="required">-->
<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">-->
<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
<module-option name="java.naming.provider.url">ldap://localhost:389/</module-option>
<module-option name="java.naming.security.authentication">simple</module-option>
<module-option name="java.naming.security.principal">cn=Manager,dc=mycompany,dc=com/module-option>
<module-option name="java.naming.security.credentials">secret</module-option>
<module-option name="principalDNPrefix">cn=</module-option>
<module-option name="principalDNSuffix">,ou=people,dc=mycompany,dc=com</module-option>
<module-option name="matchOnUserDN">true</module-option>
<module-option name="roleAttributeID">initials</module-option>
<module-option name="roleAttributeIsDN">false</module-option>
<module-option name="allowEmptyPasswords">false</module-option>
</login-module>
</application-policy>
and i referenced it in my login module
<login-config>
<auth-method>FORM</auth-method>
<realm-name>ldap-pdil</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/errors/loginFailedError.jsp</form-error-page>
</form-login-config>
</login-config>
I think that i don't configure correctly these module option "matchOnUserDN", "roleAttributeID", "roleAttributeIsDN" : I try different value but the result is the same!
Some one can help me?
Why the user successfully login, but no role information are available?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3967944#3967944
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3967944
More information about the jboss-user
mailing list