首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-Security: Spring-Security中/**和/* url模式的差异

Spring-Security: Spring-Security中/**和/* url模式的差异
EN

Stack Overflow用户
提问于 2014-07-25 13:29:19
回答 4查看 23.7K关注 0票数 29

我对spring安全中的URL-pattern有点困惑。因为在servlet核心http安全中,//* url模式用于指定一个或多个目录。/用于一个目录,/*用于多个目录。而在spring安全中,也介绍了/**/** url模式在安全方面的主要作用是什么。

EN

回答 4

Stack Overflow用户

发布于 2014-07-25 14:14:37

/*和/**的不同之处在于,第二个匹配整个目录树,包括子目录,而as /*只在指定的级别匹配。

票数 31
EN

Stack Overflow用户

发布于 2018-02-14 17:44:38

代码语言:javascript
复制
 @Override
    protected void configure(HttpSecurity http) throws Exception {
    // ...
    .antMatchers(HttpMethod.GET, "/**").permitAll
    .antMatchers(HttpMethod.POST, "/*").permitAll
    // ...
 }

在此配置中,将允许任何"Get“请求,例如:

  • /book
  • /book/20
  • /book/20/author

因此,所有这些urls都匹配模式为"/**“的文本。

Post”允许的urls:

  • /book
  • /magazine

上面的Urls与"/*“匹配

票数 9
EN

Stack Overflow用户

发布于 2014-07-25 14:09:10

根据Spring Security文档,/**的主要目的是捕获所有通配符:

在实践中,我们建议您在服务层使用方法安全性,以控制对应用程序的访问,并且不要完全依赖于在web应用程序级别定义的安全约束的使用。URL会发生变化,很难考虑到应用程序可能支持的所有可能的URL以及如何处理请求。您应该尝试并限制自己使用一些简单的ant路径,这些路径很容易理解。总是尝试使用“deny-by-default”方法,在这种方法中,您最后定义了一个捕获所有通配符(/**或**)并拒绝访问。

我们也不应该忘记

模式总是按照定义的顺序进行评估。因此,在列表中定义更具体的模式比定义不太具体的模式更重要。

因此,我们可以得到类似这样的东西:

代码语言:javascript
复制
<security:http pattern="/rest-service/**"  authentication-manager-ref="authenticationManager" auto-config="false" access-decision-manager-ref="accessDecisionManager">
    <security:intercept-url pattern="/rest-service/report/export/xml" access="AUTH_REPORT_EXPORTXML" />        
    <security:intercept-url pattern="/**" access="AUTH_SYSTEM_LOGIN" />
    <security:http-basic />
</security:http>

这意味着对于所有请求,我们都需要AUTH_SYSTEM_LOGIN权限,但特别是对于/rest-service/report/export/xml,用户也将需要AUTH_REPORT_EXPORTXML权限,因为上面已经定义了它。正如他们还说的,最好不要只依赖于这个安全约束,这意味着在服务方法中复制这些约束也很好,比如这样的安全注释:

代码语言:javascript
复制
@Secured("AUTH_REPORT_EXPORTXML")

一般来说,据我所知,/*/**之间没有区别,只是最后一个捕获了所有的通配符。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24948651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档