Spring Security学习系列(3) - Spring Security 配置 2

看过之前的 Srping Security 学习 系列 - Spring Security 配置 后, 就可以开始配置security-config.xml 了。 

先把框搭好:

<?xml version="1.0" encoding="GBK"?>

<!--
  - Sample namespace-based configuration
  -
  -->

<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

</beans>
 

上述这一段并不表示什么内容, 它为接下来的配置定义准备了该有的命名空间, 如下:

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd
 

如果没有上述这一段, Spring其实是不认识Spring Security配置的。

先请大家认识一下几个Spring security 配置的基本单元

第一个: <global-method-security>

它表达的意思是方法级的安全拦截, 它有如下几个属性:

 1. pre-post-annotations : 启用基于表达式的注解

 2. secured-annotations : 启用spring security的@Secured

 3. jsr250-annotations : 启用JSR-250注解

通常我们会限制注解的使用范围 , 如下:

<global-method-security>    
  <protect-pointcut access="ROLE_ADMIN"   expression="execution(* com.yourhz.springsecurity.service.I*Service.*(..))"/>    
</global-method-security>    
 

protect-pointcut表达的意思是添加安全切点 com.yourhz.springsecurity.server.impl包下所有ServiceImpl结尾的类,只有ROLE_ADMIN角色才能调用其方法

猜你喜欢

转载自startfromheart.iteye.com/blog/1679534