gpt4 book ai didi

java - web.xml 并混合 no-auth 和 auth

转载 作者:行者123 更新时间:2023-12-01 10:12:23 39 4
gpt4 key购买 nike

我希望在单个 Web 应用程序中,部分部分使用身份验证,部分部分完全开放(或者更具体地说,不使用基于容器的身份验证)。

使用基于容器的身份验证的应用程序部分位于 URL /而打开的部分位于 URL /openpages 。 (是的,我知道如果反过来的话可能会更容易,但不想开放应用程序的源代码)

这是我对 web.xml 的尝试:

<web-app>
....
<security-constraint>
<web-resource-collection>
<web-resource-name>closedpages</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>
</login-config>
</web-app>

因为我的url-pattern声明 /而不是/*我想它应该有效。但事实并非如此。无论我访问http://myhost/http://myhost/openpages/我收到 HTTP 身份验证提示。仅http://myhost/应触发 HTTP 身份验证提示。

我的理解是,<security-constraint> 中未具体涵盖的所有内容是开放的,对吗?所以,/openpages/不应使用任何身份验证。

更多的是:我真的不喜欢 <login-config>是在 web 应用程序级别指定的,而不是在每个安全约束级别指定的。这肯定会削弱灵 active 吗?

最佳答案

默认情况下,安全约束未明确涵盖的所有内容均不打开,请使用whitelisting为此(简而言之:任何没有登录的人都可以使用没有 auth-constraintsecurity-constraint)。

另请注意,url-pattern 值并不完全直观,请参阅 this answer 中的详细信息。以及 this question 中的多个 url 模式匹配问题的示例(其中 /testresource.xml 匹配 /**.xml)。

关于java - web.xml 并混合 no-auth 和 auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073655/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com