我正在尝试解除/** 模式的安全,但到目前为止我所有的尝试都是徒劳的。
这就是我正在做的:
<security:intercept-url pattern="/**" filters="none" />
我的配置不再包含任何 intercept-url
定义。
然而,在访问任何 URL 后,我仍然会被重定向到默认入口点...
我调试了 spring security 源,我实际上可以看到正在为我尝试访问的 URL 加载的过滤器。 (FilterChainProxy
行:154,filters
列表已满)
任何关于为什么会发生这种情况以及如何不保护/** 的见解将不胜感激。
我正在使用 3.0.5.RELEASE
编辑:
安全配置:
<security:http auto-config="false" use-expressions="true" entry-point-ref="loginUrlAuthenticationEntryPoint">
<!-- dev --><security:intercept-url pattern="/**" filters="none" />
<security:custom-filter position="FORM_LOGIN_FILTER" ref="absoluteUrlSsoFilter" />
</security:http>
<security:authentication-manager>
<security:authentication-provider user-service-ref="ssoDetailsService" />
</security:authentication-manager>
这是相关部分,我也可以给你 bean 定义,但我怀疑问题出在那里。
最佳答案
至少在 grails 中,您可以将安全设置设置为 IS_AUTHENTICATED_ANONYMOUSLY。由于 grails spring security 插件基于 spring security,我敢打赌这会起作用。
无需使用过滤器或任何东西。
关于java - 如何在 spring-security 中取消/** URL 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216160/