一、是什么?
Spring Security对Web安全性的支持大量地依赖于Servlet过滤器。这些过滤器拦截进入请求,并且在应用程序处理该请求之前进行某些安全处理。 Spring Security提供有若干个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从而增强安全性。根据自己的需要,可以使用适当的过滤器来保护自己的应用程序。SpringSecurity专门为web开发而设计。
二、两个重要接口
(1)UserDetailService:当什么也没有配置的时候,账号和密码是由Spring Security 定义生成的。而实际中账号和密码都是从数据库中查询出来的。所以找们要自定义逻辑控制实现UserDetailService接口,编写查询数据库的过程,返回自定义user对象(实现UserDetailService接口),也可返回SpringSecurity自身user对象(底层实现了UserDetailService接口)
(2)PasswordEncoder:密码加密接口,一般用不到,会使用自己的自定义加密方式方法
三、权限认证
设置用户名密码的三种方式:1、配置文件 2、配置类 3、自定义实现类,实现UserDetailService接口(推荐)
配置类:自定义配置类继承WebSecurityConfigurerAdapter类,重写configure方法
自定义实现类:(1)自定义配置类继承WebSecurityConfigurerAdapter类,重写configure方法,调用userDetailsService将自定义用户实现类对象注入(2)自定义实现类实现userDetailsService接口,返回userDetail对象(可自定义用户信息对象,继承userDetail,返回此对象)
四、自定义登录界面
一、基础配置
二、权限访问控制
1、根据权限:hasAuthority方法 与 hasAnyAuthority方法
2:根据角色:hasRole方法 和 hasAnyRole 方法
三、自定义403界面
四、注解的使用
五、用户注销
六、自动登录: