或者是否确定了设计问题?
要决定是否应在我的自定义AuthenticationFilter
中继续过滤器链,我需要检查Authentication
是AnonymousAuthenticationToken
和是否当前匹配的网址具有access="permitAll"
属性(通常由FilterSecurityInterceptor
处理)。
所以
<!-- chain should continue past authentication regardless of authentication type (anonymous/actual) -->
<security:intercept-url pattern="/pages/public/public.html" access="permitAll"/>
<!-- chain should continue only on non-anonymous authentication -->
<security:intercept-url pattern="/pages/authenticated/stuff.html" access="isAuthenticated()"/>
换句话说,我需要一种方法来识别我应该跳过身份验证的URL路径,但仍然有一个匿名令牌,所以安全拦截器像往常一样工作。
我正在使用Spring Security 3.0.1,因此目前不支持针对不同网址路径的单独过滤器链。
答案 0 :(得分:1)
嗯,你正在混合身份验证和授权,所以它肯定是一种气味。做access="IS_AUTHENTICATED_ANONYMOUSLY"
会有什么问题?