JNDIRealm / Tomcat组/角色搜索作为经过身份验证的用户

时间:2012-07-10 10:43:59

标签: tomcat jndi

如何让tomcat / jndi使用身份验证用户绑定到ldap进行群组搜索?

问题:

  • 针对servlet的简单的基于FORM的Tomcat / jndiRealm / ldap身份验证
  • 已经设置好以便用户 正确验证(绑定模式)
  • 但是,ldap服务器不允许匿名绑定查看我感兴趣的组。当前身份验证用户可以看到这些组
  • 我不想使用connectionName和connectionPassword

我希望角色搜索由当前正在进行身份验证的用户完成,但即使在绑定模式下,wireshark也会显示在初始用户身份验证后完成匿名绑定。

可行的解决方法,但不是我想要的:

  • 使用可以查看组
  • 的用户的connectionName和connectionPassword
  • 为领域设置commonRole

(我对ldap服务器没有控制权)

来自我的(非工作)server.xml

<Realm className="org.apache.catalina.realm.JNDIRealm"
   connectionURL="ldap://localhost:389"
   userPattern="cn={0},ou=people,o=myO,dc=myDc,dc=com"
   roleBase="ou=groups,o=myO,dc=myDc,dc=com"
   roleName="cn"
   roleSearch="member={0}" />

1 个答案:

答案 0 :(得分:0)

如果您对LDAP服务器没有任何控制权并且Tomcat的JNDIRealm确实如此,那么您似乎没有其他选择,只能使用连接名称/密码。检查JNDIRealm源代码很容易:它不是一个大文件。