Spring security access ="IS_AUTHENTICATED_ANONYMOUSLY,IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBERED"

Nim*_*sky 5 spring-security

这里得到答案后,我试图在我的网站上允许一个公共页面,但它似乎不起作用.当它重定向到登录页面.但是,如果我更改为filters = none它可以工作,并且页面是可见的,没有重定向.

我的appContext.xml看起来像这样(当它不起作用时),/MyPath相关部分:

<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:intercept-url pattern="/Admin/**" access="ROLE_ADMIN" />
<security:intercept-url pattern="/MyPath/**" access="IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED" />
Run Code Online (Sandbox Code Playgroud)

这有效,但我需要安全功能,所以不能使用它:

<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:intercept-url pattern="/Admin/**" access="ROLE_ADMIN" />
<security:intercept-url pattern="/MyPath/**" filters="none" />
Run Code Online (Sandbox Code Playgroud)

小智 6

假设您使用的是最新版本,如果您不需要匿名地告知用户"如何"进行身份验证,您可能会坚持使用更简单的匿名用户规范形式.

这是doc部分的链接

除此之外,我认为你的问题是订购.订单确实很重要,您首先拥有最少限制的模式.试着转过身来.

您可以使用多个元素为不同的URL集定义不同的访问要求,但它们将按列出的顺序进行评估,并将使用第一个匹配项.所以你必须把最具体的比赛放在最上面.您还可以添加方法属性以限制与特定HTTP方法(GET,POST,PUT等)的匹配.如果请求与多个模式匹配,则无论排序如何,特定于方法的匹配都将优先.

这里开始