Tomcat容器使用LDAP对用户进行身份验证
我正在尝试用LDAP身份验证替换Tomcat的inMemory用户数据库。在conf / server.xml中进行更改
当用户登录popus时,我想将用户凭据与ldap进行比较。
<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionName="abcusername"
connectionPassword="mypassword"
connectionURL="ldap://ada.cab.ast.com:389"
debug="10" userBase="DC=cab,DC=ast,DC=com"
userSearch="(cn={0})"
userSubtree="true"/>
我的web.xml,如果用户通过身份验证,则不会有任何角色限制
<security-constraint>
<web-resource-collection>
<web-resource-name>HTML Manager interface (for humans)</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
当我提供正确的用户名和密码时,我在下面的日志中看到用户已通过身份验证但授权失败,我猜并失败了。 任何帮助表示赞赏。
AuthenticatorBase.register Authenticated 'fkhan002c' with type 'BASIC'
AuthenticatorBase.invoke Calling accessControl()
hasResourcePermission Checking roles GenericPrincipal[fkhan002c()]
AuthenticatorBase.invoke Failed accessControl() test
答案 0 :(得分:1)
发现问题
Web资源集合是针对java资源的,因为我试图将静态内容作为一个静态内容,因为您可以看到以下我也需要静态内容。
<security-constraint>
<web-resource-collection>
<web-resource-name>Secure contents</web-resource-name>
<url-pattern>/index.html</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Secure content</realm-name>
</login-config>
<security-role>
<description>
This logical role includes all administrative users
</description>
<role-name>*</role-name>
</security-role>