二、Spring Security的使用

一、课程介绍

1.1 Spring Security介绍:认证、权限拦截、数据库、权限缓存以及自定义决策

1.2 环境搭建和使用

二、spring Security的架构


三、Spring Security的权限拦截

3.1 Spring Security拦截器的处理过程


spring security提供了很多的过滤器,拦截servlet请求,将这些请求转交给认证管理器和访问决策管理器,并强制安全性

3.2 spring security的常见filter

3.2.1 率先执行的过滤器,判断用户的session是否已经存在securityContext的上下文中,如果存在则把securityContext拿出来,放在SecurityContextHolder中,供其它部分使用。

过滤器的顶端,第一个起作用的过滤器

3.2.2 LogoutFilter

3.2.3 AbstractAuthenticationProcessingFilter:处理form登陆的过滤器

3.2.4 DefaultLoginPageGeneratingFilter :生成默认的登陆页面

3.2.5 BasicAuthenticationFilter:

3.2.6 其它

Spring Security的常见过滤器

四、Spring Security的数据库管理


当使用数据库管理用户时,我们需要手动实现UserDetailService中的loadUserByUsername()方法
loadUserByUsername()返回的UserDetail对象,其中包含了当前用户的权限集合

五、Spring Security的权限缓存

UserDetailService缓存

六、Spring Security的自定义决策

七、Case:Spring Boot+Spring Security

7.1 搭建spring boot环境

7.2 引入spring-security的依赖包,此时访问controller,就需要输入用户名密码来访问

测试Controller如下
此时访问url就需要输入用户名密码


7.3 对访问策略进行配置

对http请求的策略配置
对静态资源的策略配置

八、Spring Security的常见Case

8.1 只要能登陆即可:网页是记录项目里的工具等,安全性要求不高。只要组内同事能登陆即可

ADMIN用户只要登陆即可访问,zhouzhou是基于角色的,然后在Controller中添加如下的注解

九、数据库管理用户

定义实现UserDetaisService的类,其中返回一个UserDetails对象,UserDetails对象有如下的实现类
UserDetail的实现,其中需要如下的字段。密码需要自定义校验规则
自定义密码的校验规则
设置校验时定义的UserDetailService类,同时设定密码校验的类

十、总结

10.1 优点

优点

10.2 缺点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容