我正在尝试在我的 tomcat 应用程序上启用基本 HTTP 身份验证。我还想将其保留在应用程序之外。我在 tomcat-users.xml 中添加了一个新用户,并将其角色设置为“app-user”。然后我添加了一个文件 $CATALINA_HOME/conf/Catalina/localhost/myapp.xml,其中包含以下内容。但是,tomcat 完全忽略了它。我做错了什么?
<Context path="/myapp">
<security-constraint>
<web-resource-collection>
<web-resource-name>
Wildcard means whole app requires authentication
</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>app-user</role-name>
</auth-constraint>
<user-data-constraint>
<!-- transport-guarantee can be CONFIDENTIAL, INTEGRAL, or NONE -->
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</Context>
答案1
该<security-constraint>
标签属于应用程序的web.xml(通常在WEB-INF/web.xml
您的war中)。
如果您确实希望将其保留在您的应用程序之外,那么您可以将其添加到文件中conf/web.xml
,但请记住,它将应用于您的 tomcat 中的任何其他 web 应用程序。