看过之前的 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角色才能调用其方法