Jboss 6.4上的LDAP

时间:2016-01-24 15:07:17

标签: java java-ee jboss ldap

我想在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的信息??

1 个答案:

答案 0 :(得分:0)

您的LDAP配置看起来是正确的。

无法从HttpSessionListener中检索用户名,但您可以使用过滤器。请查看:Getting User Name from Within HttpSessionListener