`
234390216
  • 浏览: 10212129 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:461766
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1773782
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1397026
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394491
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679172
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530011
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1180039
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:464991
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:150826
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:67524
社区版块
存档分类
最新评论

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

阅读更多

intercept-url配置

目录

1.1     指定拦截的url

1.2     指定访问权限

1.3     指定访问协议

1.4     指定请求方法

 

1.1    指定拦截的url

       通过pattern指定当前intercept-url定义应当作用于哪些url

<security:intercept-url pattern="/**" access="ROLE_USER"/>

 

1.2     指定访问权限

       可以通过access属性来指定intercept-url对应URL访问所应当具有的权限。access的值是一个字符串,其可以直接是一个权限的定义,也可以是一个表达式。常用的类型有简单的角色名称定义,多个名称之间用逗号分隔,如:

<security:intercept-url pattern="/secure/**" access="ROLE_USER,ROLE_ADMIN"/>

       在上述配置中就表示secure路径下的所有URL请求都应当具有ROLE_USERROLE_ADMIN权限。当access的值是以“ROLE_”开头的则将会交由RoleVoter进行处理。

 

       此外,其还可以是一个表达式,上述配置如果使用表达式来表示的话则应该是如下这个样子。

   <security:http use-expressions="true">

      <security:form-login />

      <security:logout />

      <security:intercept-url pattern="/secure/**" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

   </security:http>

       或者是使用hasRole()表达式,然后中间以or连接,如:

   <security:intercept-url pattern="/secure/**" access="hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')"/>

       需要注意的是使用表达式时需要指定http元素的use-expressions=”true”。更多关于使用表达式的内容将在后文介绍。当intercept-urlaccess属性使用表达式时默认将使用WebExpressionVoter进行处理。

       此外,还可以指定三个比较特殊的属性值,默认情况下将使用AuthenticatedVoter来处理它们。IS_AUTHENTICATED_ANONYMOUSLY表示用户不需要登录就可以访问;IS_AUTHENTICATED_REMEMBERED表示用户需要是通过Remember-Me功能进行自动登录的才能访问;IS_AUTHENTICATED_FULLY表示用户的认证类型应该是除前两者以外的,也就是用户需要是通过登录入口进行登录认证的才能访问。如我们通常会将登录地址设置为IS_AUTHENTICATED_ANONYMOUSLY

   <security:http>

      <security:form-login login-page="/login.jsp"/>

      <!-- 登录页面可以匿名访问 -->

      <security:intercept-url pattern="/login.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>

      <security:intercept-url pattern="/**" access="ROLE_USER"/>

   </security:http>

 

1.3     指定访问协议

       如果你的应用同时支持HttpHttps访问,且要求某些URL只能通过Https访问,这个需求可以通过指定intercept-urlrequires-channel属性来指定。requires-channel支持三个值:httphttpsanyany表示httphttps都可以访问。

   <security:http auto-config="true">

      <security:form-login/>

      <!-- 只能通过https访问 -->

      <security:intercept-url pattern="/admin/**" access="ROLE_ADMIN" requires-channel="https"/>

      <!-- 只能通过http访问 -->

      <security:intercept-url pattern="/**" access="ROLE_USER" requires-channel="http"/>

   </security:http>

 

       需要注意的是当试图使用http请求限制了只能通过https访问的资源时会自动跳转到对应的https通道重新请求。如果所使用的http或者https协议不是监听在标准的端口上(http默认是80https默认是443),则需要我们通过port-mapping元素定义好它们的对应关系。

   <security:http auto-config="true">

      <security:form-login/>

      <!-- 只能通过https访问 -->

      <security:intercept-url pattern="/admin/**" access="ROLE_ADMIN" requires-channel="https"/>

      <!-- 只能通过http访问 -->

      <security:intercept-url pattern="/**" access="ROLE_USER" requires-channel="http"/>

      <security:port-mappings>

         <security:port-mapping http="8899" https="9988"/>

      </security:port-mappings>

   </security:http>

 

1.4     指定请求方法

       通常我们都会要求某些URL只能通过POST请求,某些URL只能通过GET请求。这些限制Spring Security也已经为我们实现了,通过指定intercept-urlmethod属性可以限制当前intercept-url适用的请求方式,默认为所有的方式都可以。

   <security:http auto-config="true">

      <security:form-login/>

      <!-- 只能通过POST访问 -->

      <security:intercept-url pattern="/post/**" method="POST"/>

      <!-- 只能通过GET访问 -->

      <security:intercept-url pattern="/**" access="ROLE_USER" method="GET"/>

   </security:http>

 

       method的可选值有GETPOSTDELETEPUTHEADOPTIONSTRACE

 

(注:本文是基于Spring Security3.1.6所写)

(注:原创文章,转载请注明出处。原文地址:http://elim.iteye.com/blog/2161056

 

 

8
0
分享到:
评论

相关推荐

    SpringSecurity笔记2-SpringSecurity命名空间

    在"SpringSecurity笔记2-SpringSecurity命名空间"这个主题中,我们将深入探讨SpringSecurity配置的核心——命名空间。 SpringSecurity通过XML配置文件中的命名空间来简化设置过程,这些命名空间提供了丰富的元素和...

    spring-security多登录页面配置

    ### Spring Security 多登录页面配置详解 在许多大型企业级应用中,为了更好地实现权限管理和用户体验,往往会采用多个登录页面的方式来进行用户身份验证。这种方式能够有效地将不同类型的用户(如前台用户、后台...

    spring-security-core-2.0.6.RELEASE

    在2.0.6.RELEASE版本中,开发者可以使用`&lt;http&gt;`、`&lt;authentication&gt;`和`&lt;intercept-url&gt;`等元素来定义安全策略。例如,设置登录页面、指定哪些URL需要保护、定义认证机制等。 四、认证流程 1. **匿名访问**:对于...

    spring-security-login-form-database-xml.zip_java security

    Spring Security的`@Secured`或`@PreAuthorize`注解可以用于方法级别的权限控制,而`&lt;security:intercept-url&gt;`元素则用于URL级别的访问控制。 7. **密码加密**: 为了安全,用户密码通常需要在存储前进行加密。...

    初识 Spring Security - v1.1.pdf

    - **概念**:通过配置`intercept-url`来指定哪些URL需要进行拦截并执行相应的认证和授权策略。 - **指定拦截的URL**:指定哪些URL需要被拦截。 - **指定访问权限**:为特定URL设置访问所需的权限。 - **指定访问协议...

    Spring Security 3.1 配置实例,有URL 方法拦截,都存数据库 maven

    **Spring Security 3.1配置实例** Spring Security是一款强大的安全框架,用于保护基于Java的Web应用程序。在3.1版本中,它提供了丰富的功能来管理应用程序的安全性,包括URL访问控制、用户认证、授权以及方法级别...

    spring-security多个登录页面配置

    在Spring Security框架中实现多个登录页面的配置是一项高级特性,主要应用于区分前端用户与后端管理员的不同登录需求。本文将详细介绍如何通过Spring Security配置多个登录页面,并为不同类型的用户设置不同的登录...

    SpringSecurity学习总结源代码

    例如,你可以使用 `&lt;http&gt;` 元素来配置URL过滤, `&lt;intercept-url&gt;` 用于指定URL模式的访问权限, `&lt;form-login&gt;` 和 `&lt;logout&gt;` 分别用于处理表单登录和登出。 在"springsecurity.rar"文件中,可能包含了Spring...

    spring security xml方式配置

    总结来说,Spring Security XML配置涉及到的主要知识点包括:`&lt;http&gt;`元素的设置、拦截URL的配置、`&lt;authentication-manager&gt;`和`&lt;authentication-provider&gt;`的使用、自定义登录表单的实现以及Spring MVC和Bootstrap...

    spring security 2.0 命名空间配置(带例子)

    这里,`auto-config="true"`会自动配置一些基本的安全过滤器,`&lt;intercept-url&gt;`定义了URL模式和相应的访问权限,`&lt;form-login&gt;`配置了登录页面和登录失败后的跳转,而`&lt;logout&gt;`则设置了注销功能。 接下来是`...

    Spring Security简易配置指南

    - `&lt;intercept-url&gt;`定义了URL模式及其对应的访问权限。例如,`/index.jsp`和`/login.jsp`对所有用户开放,而`/afterLogin/**`只允许拥有`ROLE_USER`角色的用户访问。 - `&lt;form-login&gt;`元素定义了登录页面、登录失败...

    spring-security-3.0.5.RELEASE 官方下载

    在3.0.5.RELEASE中,可以使用`&lt;http&gt;`、`&lt;authentication-manager&gt;`和`&lt;intercept-url&gt;`等元素来配置安全行为。 5. **Remember Me服务**:此版本可能包含了Remember Me功能,允许用户在一段时间内无须重新登录。它...

    spring security3配置和使用实例+教程

    例如,你可以使用`&lt;intercept-url&gt;`标签来指定哪些URL需要进行安全过滤。 2. **认证配置**:Spring Security 提供了多种认证方式,如基于内存的用户信息、JDBC认证、ldap认证等。通常,你需要配置`authentication-...

    spring security 3.1 配置登陆页面

    最后,为了使Spring Security能够处理GET请求的登录页面,你需要在`&lt;http&gt;`配置中添加一个`intercept-url`,允许未认证的用户访问这个页面: ```xml ... &lt;intercept-url pattern="/login*" access="permitAll" /&gt;...

    Spring Security 3 与 CAS单点登录配置.doc

    Spring Security 3 与 CAS 单点登录配置 Spring Security 3 是一个基于 Java 的安全框架,提供了灵活的身份验证、授权和访问控制功能。CAS(Central Authentication Service)是一种流行的单点登录协议,允许用户...

    spring security配置实例

    ### Spring Security配置实例详解 #### 一、Spring Security简介与应用场景 Spring Security 是一个功能强大的安全框架,提供了全面的安全服务,支持认证、授权以及其他安全服务。它为开发人员提供了高度可定制化...

    SpringSecurity 3配置文件

    例如,你可以使用`&lt;intercept-url&gt;`子元素来指定哪些URL需要特定的角色权限才能访问。 - `authentication-manager`: 它是身份验证管理器,负责处理用户的登录请求。可以定义不同的`authentication-provider`来实现...

Global site tag (gtag.js) - Google Analytics