第三次分享内容 -Spring Security

http://www.cnblogs.com/leihenqianshang/articles/5313159.html
Spring Security是Spring的一个安全框架,它的前身是Acegi Security.这个框架主要分为两个部分:认证、验证。

  • 认证是为用户建立一个他所声明的主体,主体一般是指用户。
  • 认证是判断用户访问的资源是否有足够的权限。

maven 依赖

**要使用 Spring security 你需要 spring-security-web 和 spring-security-config.


org.springframework.security
spring-security-web
3.2.0.RELEASE


org.springframework.security
spring-security-config
3.2.0.RELEASE

web.xml配置



contextConfigLocation

classpath:applicationContext.xml,
classpath:applicationContext-security.xml



springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy


springSecurityFilterChain
/*

applicationContext-security.xml命名空间配置

官方提供了两种配置方案
第一种、命名空间用beans开头,但是在配置中一直需要用来配置。
xmlns:security="http://www.springframework.org/schema/security"
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.xsd">
...

第二种、命名空间用security开头,在配置中不需要security前缀,但是bean的配置需要用配置。
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.xsd">
...

spring security实现方式

大致可以分为这几种:
1.配置文件实现,只需要在配置文件中指定拦截的url所需要权限、配置userDetailsService指定用户名、密码、对应权限,就可以实现。
2.实现UserDetailsService,loadUserByUsername(String userName)方法,根据userName来实现自己的业务逻辑返回UserDetails的实现类,需要自定义User类实现UserDetails,比较重要的方法是getAuthorities(),用来返回该用户所拥有的权限。
3.通过自定义filter重写spring security拦截器,实现动态过滤用户权限。
4.通过自定义filter重写spring security拦截器,实现自定义参数来检验用户,并且过滤权限

你可能感兴趣的:(第三次分享内容 -Spring Security)