spring security 配置 intercept-url 时需要注意的几个问题

原创 2013年12月03日 11:25:49

Spring Security 正则表达

Posted on March 8, 2012 by kevin

By default, after you’ve added Spring Security to your Roo app with ‘security setup’, you get an example config in a applicationContext-security.xml file like this:

    <http auto-config="true" use-expressions="true">
        <form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t"/>
        <logout logout-url="/resources/j_spring_security_logout"/>

        <!-- Configure these elements to secure URIs in your application -->
        <intercept-url pattern="/choices/**" access="hasRole('ROLE_ADMIN')"/>
        <intercept-url pattern="/member/**" access="isAuthenticated()" />
        <intercept-url pattern="/resources/**" access="permitAll" />
        <intercept-url pattern="/**" access="permitAll" />
    </http>

The default pattern matching approach is to use Ant style path matching. If you need to be more specific for what URLs you need to define security against, then you can change to use regex style pattern matching by adding this attribute to the <http> element:

<http ... path-type="regex" ... >

Now, let’s say you need to have different roles for creating verses listing member records – Spring Roo uses a couple of GET parameters to distinguish between these actions, so using regex you can match on these like this:

        <intercept-url pattern="/member?form" access="hasRole('ROLE_ADMIN')" />
        <intercept-url pattern="/member?page.*" access="hasRole('ROLE_USER')" />
- See more at: http://www.kevinhooke.com/2012/03/08/configuring-spring-security-for-finer-grained-url-pattern-matching-with-a-spring-roo-app/#sthash.Y7x8MpVv.dpuf



Spring Security 顺序问题

http://www.fengfly.com/document/springsecurity3/core-web-filters.html

<bean id="filterInvocationInterceptor"
     class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
  <property name="authenticationManager" ref="authenticationManager"/>
  <property name="accessDecisionManager" ref="accessDecisionManager"/>
  <property name="runAsManager" ref="runAsManager"/>
  <property name="securityMetadataSource">
    <security:filter-security-metadata-source path-type="regex">
      <security:intercept-url pattern="\A/secure/super/.*\Z" access="ROLE_WE_DONT_HAVE"/>
      <security:intercept-url pattern="\A/secure/.*\" access="ROLE_SUPERVISOR,ROLE_TELLER"/>
    </security:filter-security-metadata-source>
  </property>
</bean>        

模式总是根据他们定义的顺序进行执行。因此很重要的是,把更确定的模式定义到列表的上面。 这会反映在你上面的例子中,更确定的/secure/super/模式放在,没那么确定的 /secure/模式的上面。如果它们被反转了。/secure/会一直 被匹配,/secure/super/就永远也不会执行。


多参数问题


<intercept-url pattern="/player/\?movie=warring-state.*" access="permitAll" />    
可以匹配 /video/edit?t=testtitle1&v=12   或者  /video/edit?t=testtitle1

8. Spring Security intercept-url配置

intercept-url配置 目录 1.1     指定拦截的url 1.2     指定访问权限 1.3     指定访问协议 1.4     指定请求方法   1.1    指定拦...
  • software444
  • software444
  • 2015年11月29日 17:11
  • 2491

Spring Security(08)——intercept-url配置

intercept-url配置 目录 1.1     指定拦截的url 1.2     指定访问权限 1.3     指定访问协议 1.4     指定请求方法   1.1    指定拦...
  • caomiao2006
  • caomiao2006
  • 2016年07月02日 20:32
  • 1135

Spring Security intercept url

其典型用法是在配置文件的Bean中定义:                                                             ...
  • u013755987
  • u013755987
  • 2015年04月13日 17:46
  • 864

Secure REST API with oauth2 (翻译)

1.概述在这个教程中,我们将用oauth2对REST API进行安全控制,并在一个简单的AngularJS客户端程序中使用。 我们将要构建的应用包含四个独立的模块: * Authorizatio...
  • haiyan_qi
  • haiyan_qi
  • 2016年08月31日 14:30
  • 5392

spring security 登录、权限管理配置

登录流程 1)容器启动(MySecurityMetadataSource:loadResourceDefine加载系统资源与权限列表)  2)用户发出请求  3)过滤器拦截(MySecurityF...
  • rongku
  • rongku
  • 2016年04月24日 22:50
  • 10021

spring security3.1 不再支持 filters="none" 解决办法

f 系统报错如下: org.springframework.beans.factory....
  • mmm333zzz
  • mmm333zzz
  • 2013年04月26日 10:15
  • 5159

关于spring security权限控制

spring-security.xml 文件: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:sec...
  • zhangweibin123
  • zhangweibin123
  • 2016年07月12日 15:12
  • 400

spring security四种实现方式

spring security实现方式大致可以分为这几种:     1.配置文件实现,只需要在配置文件中指定拦截的url所需要权限、配置userDetailsService指定用户名、密码、对应权限,...
  • bao19901210
  • bao19901210
  • 2016年09月18日 17:37
  • 31320

Spring Security通过URL模式匹配的声明式权限控制

Spring Security的声明式安全授权有两种方式,一种是以url模式匹配的方式,另一种是方法上使用注解声明权限,这里重点说第一种。 一、创建一个类继承WebSecurityConfigure...
  • luenxin
  • luenxin
  • 2015年12月03日 15:41
  • 3796

spring security 概述& 配置文件详解

通常,安全任务是由应用服务器完成用户认证和对资源的授权,这些任务也可以委托给Spring security处理这些任务从而减轻应用服务器负担,Spring安全基本上通过实施标准的javax.ser...
  • feng27156
  • feng27156
  • 2014年12月18日 16:42
  • 15323
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring security 配置 intercept-url 时需要注意的几个问题
举报原因:
原因补充:

(最多只允许输入30个字)