【问题标题】:Spring Security <http> and <intercept-url> pattern attributesSpring Security <http> 和 <intercept-url> 模式属性
【发布时间】:2014-11-28 10:28:55
【问题描述】:

我已经看到 Spring Security OAuth2 示例在 spring-servlet.xml 中定义了这个,

   <http pattern="/users/**" create-session="never" entry-point-ref="oauthAuthenticationEntryPoint"
      access-decision-manager-ref="accessDecisionManager" xmlns="http://www.springframework.org/schema/security">
    <anonymous enabled="false" />
    <intercept-url pattern="/photos" access="ROLE_USER,SCOPE_READ" />
    <intercept-url pattern="/photos/trusted/**" access="ROLE_CLIENT,SCOPE_TRUST" />
    <intercept-url pattern="/photos/user/**" access="ROLE_USER,SCOPE_TRUST" />
    <intercept-url pattern="/photos/**" access="ROLE_USER,SCOPE_READ" />
    <custom-filter ref="resourceServerFilter" before="PRE_AUTH_FILTER" />
    <access-denied-handler ref="oauthAccessDeniedHandler" />
</http>

http 标签中的pattern 属性是否有效?我在spring-security-2.0.1.xsd 中找不到它的定义。如果有效,该模式与intercept-urlpattern 属性有什么关系?举个例子,拦截路径/photos/user/**是否有最终匹配的拦截路径/users/photos/user/**?谢谢。

【问题讨论】:

    标签: spring-security spring-security-oauth2


    【解决方案1】:

    pattern 属性是在 3.1 中引入的,它引入了对多个过滤器链的命名空间支持。 Spring Security 2 已经过时了(你不应该使用它)。

    intercept-url 元素中的模式是独立的,因为它们与传入请求 URI 的匹配方式与检查过滤器链 http 模式的方式相同。但是,如果后者不匹配,则过滤器链将根本不会应用于请求,因此为了产生任何效果,它们必须与过滤器链模式一致。

    对于您发布的示例,这意味着/photos 模式都没有任何效果。它们都应该具有主过滤器链匹配的前缀 - 即它们应该以 /users/photos 开头。

    【讨论】:

    • 有没有提到为什么要这样设计配置?我的意思是它不直观,并且使整个 配置无用并且像我的示例中那样被忽视。
    • 除了让两者独立之外,您还会如何设计它?确定一种蚂蚁模式是否“包含”在另一种蚂蚁模式中并不是一个简单的问题。例如,如果过滤器链模式是 /**/users/** 怎么办?
    • 在我的脑海中,我们可能会在 模式之间发生失败的快速路径冲突,例如/user/** 将与 /user/photos 冲突,它应该在 /user/** 模式中声明为 。 /**/users/** 之类的严格模式在您可以使用 /**/users 或 /users/** 的情况下是非法的。我必须查看一些困难的模式来确定我所说的是否成立。
    【解决方案2】:

    在spring security 4的情况下,通过haseRole('ADMIN')检查Role,试试吧。

    对我来说很好用。

    【讨论】:

    • 这看起来不像是我的答案...请发表评论
    猜你喜欢
    • 2012-03-02
    • 2017-01-18
    • 2012-08-03
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    相关资源
    最近更新 更多