【问题标题】:Bypass Spring Security Filter for URL绕过 URL 的 Spring Security 过滤器
【发布时间】:2013-04-13 05:05:49
【问题描述】:

我修改了我的applicationContext-security-preauth.xml,目的是从特定 URL 中删除过滤器。

我在使用 spring-security-oauth 过滤器时遇到问题,因此我想暂时避免将此过滤器用于特定请求。

<intercept-url pattern="/notsecure/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>

根据我的日志,在构建和复制新 JAR,然后刷新 Tomcat 之后,我的 /notsecure/ HTTP 请求仍然命中了这个过滤器。

考虑到我的配置更改,我不会期望任何过滤器被命中。

编辑:我正在使用 Spring Security 2

【问题讨论】:

    标签: spring-security


    【解决方案1】:

    如果您想避免针对该网址点击任何过滤器,您将需要一个额外的 <http> 元素,如下所示:

    <security:http pattern="/notsecure/**" security="none"/>
    

    (这仅适用于 Spring Security 3.1+)

    IS_AUTHENTICATED_ANONYMOUSLY 要求通过过滤器(即AnonymousAuthenticationFilter)对请求进行匿名身份验证。

    【讨论】:

    • SS 2 有哪些选择?
    • 抱歉,我无能为力。 :(太旧了。
    • 我是否可以在正确的条件下在我的getPreAuthenticatedPrincipal() 方法中简单地执行return "Anonymous",并更新ROLE_ANONYMOUS 的拦截URL?或者我提到的第二步还有更多工作要做吗?
    • 似乎在版本 2 中,AnonymousProcessingFilter 与版本 3 中的 AnonymousAuthenticationFilter 执行相同的操作。如果链中有该过滤器,并且没有其他过滤器对请求进行身份验证,那么它'将被分配一个匿名。授权。令牌。然后它应该通过IS_AUTHENTICATED_ANONYMOUSLY
    • 运行过滤器AnonymousProcessingFilter 后,我的日志显示Granted Authorities: ROLE_ANONYMOUS。但是过滤器链中的step 9 of 11 贯穿过滤器org.springframework.security.oauth.provider.ProtectedResourceProcessingFilter。有没有办法指定不做这个特定的过滤器?
    猜你喜欢
    • 2016-06-24
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2023-03-10
    • 2016-05-07
    • 2021-08-15
    • 2019-04-13
    相关资源
    最近更新 更多