我想在Jboss 6.4中实现LDAP验证,我是这个领域的新手。我想解释一下我是如何理解这个过程的,并且我希望收到关于过程是否正确的意见,因为这里有几种方法可以做到。
1.-在我的Jboss 6.4中定义一个安全域,在这里我将放置LDAP角色: LdapUserMyWeb ,以及此角色的密码。
登录-config.xml中
<application-policy name="LdapMyApp">
<authentication>
<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:10389</module-option> <!-- LDAP url-->
<module-option name="java.naming.security.authentication">simple</module-option>
<module-option name="bindDN">uid=LdapUserMyWeb,ou=system</module-option>
<module-option name="bindCredential">myPassword</module-option>
<module-option name="baseCtxDN">ou=people,o=sevenSeas</module-option>
<module-option name="rolesCtxDN">ou=groups,o=sevenSeas</module-option>
</login-module>
</authentication>
</application-policy>
2.-我将在WEB-INF中的 jboss-web.xml 中定义
<jboss-web>
<security-domain>java:/jaas/LdapMyApp</security-domain>
</jboss-web>
3.-最后,我需要将特定的URL或servlet限制为某些角色。在此示例中,我们仅允许角色“LdapUserMyWeb”中的用户进行访问,
<security-constraint>
<display-name>All resources</display-name>
<web-resource-collection>
<web-resource-name>All resources</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>LdapUserMyWeb</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
3.-在我的Web应用程序(jee6)中,当为角色创建会话时,我将定义HttpSessionEvent和HttpSessionListener: LdapUserMyWeb 。
这里我需要检查LDAP中是否存在用户和密码,我该怎么做 从对象会话中获取来自LDAP的信息??
答案 0 :(得分:0)
您的LDAP配置看起来是正确的。
无法从HttpSessionListener中检索用户名,但您可以使用过滤器。请查看:Getting User Name from Within HttpSessionListener