覆盖Tomcat基本身份验证

时间:2014-12-03 14:57:51

标签: java authentication tomcat servlets security-constraint

我正在尝试为我的Web应用程序编写基于Web的安装程序(主要是设置数据库)。 但是因为我正在为所有Servlet使用DIGEST身份验证,我在那里遇到了问题。 我希望能够要求用户输入他的mysql密码,但他无法登录,因为他无法登录。由于用户在数据库中保存,此时不存在,因此无法登录。

<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>crm_user</role-name>
</auth-constraint>
<user-data-constraint>
  <transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
 </security-constraint>
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>tomcat_realm</realm-name>
 </login-config>

我可以覆盖单个Servlet的登录配置,因此用户不必输入密码吗?

1 个答案:

答案 0 :(得分:0)

请注意,您指定了<url-pattern>/*</url-pattern>。您可以使用此模式将安全性约束仅应用于您要求身份验证的URL。任何与此模式不匹配的URL都不会应用此安全约束。

您还可以使用与您不想要保护的网址匹配的网址格式添加第二个安全约束。在这种情况下,请完全省略auth-constraint标记,以便允许每个人访问这些URL。请查看此other question以获取示例。