0

我正在尝试为我的 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 的登录配置,这样用户就不必输入密码了吗?

4

1 回答 1

0

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

您还可以添加第二个安全约束,其 url 模式与您不想保护的 URL 相匹配。在这种情况下,请完全省略 auth-constraint 标记,以便每个人都可以访问这些 URL。以另一个问题为例。

于 2014-12-03T15:55:44.313 回答