运行 Tomcat 7,我试图在 Tomcat 服务器上配置 /conf/web.xml 以保护一些具有基本身份验证的 URL 并提供一些其他 URL 以供公共访问。
tomcat-users.xml 包含以下角色和用户:
<role rolename="test-ui"/>
<user username="paul" password="password" roles="test-ui"/>
我已将以下部分添加到 Tomcats /conf/web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Public access</web-resource-name>
<url-pattern>/docs/*</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected access</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>test-ui</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>Protected access</description>
<role-name>test-ui</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
所以有两个“安全约束”元素,公共元素不包含“身份验证约束”,这实际上应该意味着,没有必要的身份验证。
当我打开 URL http://localhost:8080
Tomcat 要求进行身份验证。这很好,但是当我打开 URL http://localhost:8080/docs/
Tomcat 还要求进行身份验证,据我了解,这被配置为“非安全”URL - 因此可以公开访问,但它的行为并非如此。
我在配置中做错了什么,或者这种情况不应该像这样工作吗?
谢谢。保罗