spring-security自行理解-创新互联

1、导入spring-security的jar包 或者是在maven中导入依赖
作者选择的是在maven中导入依赖(这边的前提是在spring项目中集成spring-security框架用于认证)
用maven导入依赖:在pom.xml中配置(作者的spring是5.0+的版本)

为漳州等地区用户提供了全套网页设计制作服务,及漳州网站建设行业解决方案。主营业务为网站建设、成都网站设计、漳州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!


org.springframework.security
spring-security-web
${spring.security.version}


org.springframework.security
spring-security-config
${spring.security.version}


org.springframework.security
spring-security-core
${spring.security.version}


org.springframework.security
spring-security-taglibs
${spring.security.version}

2、在web.xml中配置


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



springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy


springSecurityFilterChain
/*

3、创建并配置spring-security.xml文件
开始配置

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.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
a)、






b)、



    

    
    

    
    

c)、

    
        
        
    



结束

4、创建自己的UserDao接口和一个继承了UserDetailsService这个接口的UserService接口
并创建一个UserServiceImpl类实现UserService接口
a)、重写这个方法:public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
方法中处理自己的用户封装成UserDetails
User user = new User(userInfo.getUsername(),userInfo.getPassword(),userInfo.getStatus()==0?true:false,true,true,true,getAuthority(userInfo.getRoles()));
return user;
}
和这个方法:public List getAuthority(List roles){
作用就是返回一个List集合,集合中装入的是角色描述
return list;
}
5、spring-security源码解析
spring-security自行理解
web.xml配置文件的上图配置的名称是默认的不可更改
而这个filter对应的具体类是spring-security自行理解
这个类的作用是用于干嘛的呢?
这个类的父类是继承了filter
spring-security自行理解
所以这个类的具体作用应该是在doFilter中
spring-security自行理解
在此中我们可以看到传入了一个
spring-security自行理解
FilterChain对象
但是这个对象又干了什么呢?
spring-security自行理解
此时赋值为了本类中的此变量this.delegate; 往上看我们看到了此变量是一个Filter
spring-security自行理解

spring-security自行理解
以上我们看到当为空之后就调用了本类中的initDelegate进行赋值
spring-security自行理解
这边通过加载配置文件获取Bean对象
6、FilterChainProxy实现加载所有Filter的实现类
spring-security自行理解
spring-security自行理解
获取到所需要加载的所有Filter
spring-security自行理解
spring-security自行理解
这个SecurityFilters枚举定义所有需要加载的Filter
spring-security自行理解

通过jar包
spring-security-config-5.0.1.RELEASE.jar
可以翻出spring.handlers
spring-security自行理解
spring-security自行理解
相对应
spring-security自行理解
这边更具体的说明了需要加载的所有Filter
spring-security自行理解
spring-security自行理解

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


新闻名称:spring-security自行理解-创新互联
标题来源:http://myzitong.com/article/ppsge.html