【发布时间】:2011-09-07 03:40:24
【问题描述】:
我正在尝试取消 /** 模式的安全性,但到目前为止我所有的尝试都是徒劳的。
这就是我正在做的:
<security:intercept-url pattern="/**" filters="none" />
我的配置不再包含intercept-url 定义。
但是在访问任何 URL 后,我仍然会被重定向到默认入口点...
我调试了 spring 安全源,我实际上可以看到为我尝试访问的 URL 加载的过滤器。 (FilterChainProxy line: 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定义,但我怀疑问题是否存在。
【问题讨论】:
-
你能发布完整的 spring 安全配置吗?
-
如果您还没有这样做,请将日志级别设置为 DEBUG 并查看日志输出。应该有一个非常明确的指示,您何时以及为什么被重定向到登录页面。请回复此附加详细信息,您应该能够得到一些有意义的回复。
-
@Peter 我有,是的,调试日志说类似于“候选人是:'/resource.html',模式是:'/**',匹配:true”,然后打印过滤器链将执行。我明天会发布确切的日志,因为我目前没有。实际上日志应该说“候选是:'/resource.html',模式是:'/**',匹配:true”然后“/**有一个空的过滤器列表”,就像它对除/以外的所有模式一样**
-
只是好奇你是否解决了这个问题?
-
@Peter 很好地证明了 /** 上的
filters="none"在 3.0 上不起作用,由于多个元素,它在 3.1 中是可能的。这里有更多信息forum.springsource.org/…**-URL-pattern-with-filters-quot-none-quot,这里还有更多jira.springsource.org/browse/SEC-1758,无论如何你不需要这个工作,因为你可以使用IS_AUTHENTICATED_ANONYMOUSLY
标签: java spring jboss spring-security