Java的Tomcat的LDAP认证(Java Tomcat LDAP authentication

2019-09-18 12:45发布

由于我用的Tomcat6运行Java作为servlet容器我发现它适合使用Tomcat的JNDIRealm功能 ,使LDAP用户可以登录到我的网站没有任何额外的努力。 我使用的LDAP服务器是OpenLDAP的Ubuntu上 。

在此之上我使用的登录页面基于表单的认证过的https连接 。

我发现认证用户的两个非常好的例子通过LDAP, 在这里和这里 ,既实现什么,我觉得我几乎实现了。 为什么几乎实现?

当我尝试与错误的凭据,我适当地发送到登录<form-error-page>login-failed.html在我的情况。

当我的凭据是好的,我验证成功,我开始得到一个403网站中的所有网址 。 除非我重新启动Tomcat我无法删除403错误(甚至没有登录页面!)。

我怀疑的原因是因为我没有roles中设置正确的领域或其他配置文件。 为了简便起见,我把相关的配置文件摘录于引擎收录 :

  • 境界在Tomcat中server.xml
  • 相关tomcat-users.xml的一部分
  • 相关web.xml部分
  • LDAP的基本结构 ,虚线表示树形结构

需要注意的是基于Tomcat的权威性完美的作品,因为角色很容易附着在用户tomcat-users.xml 。 因此,我相信这是越来越从LDAP身份验证的用户的角色,一旦它已经成功地被验证的问题。

TL / DR

我在Tomcat的连接到LDAP身份验证一个配置问题。 用户数据正常获取,而不是用户的角色。 根据要求提供LDAP日志消息;)

更新 :我粘贴的LDAP数据在这里 。

Answer 1:

那是对的。 您的LDAP角色不是由JNDIRealm发现。 你需要测试外Tomcat的你的角色的搜索字符串,以确保它得到什么,你认为它应该产生。 当你没有提供任何细节LDAP是不可能进一步置评。

把一个安全权限与/ *对整个网站是一个错误。 你需要排除的登录页面,也可能在头版和忘记密码页面,也许更多,从需要的角色。



文章来源: Java Tomcat LDAP authentication