1、导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2、自定义配置
实现
WebSecurityConfigurerAdapter
@Override
protected void configure(HttpSecurity http) throws Exception {
// http.formLogin() //表单方式
http.httpBasic() //http basic方式
.and()
.authorizeRequests()//授权配置
.anyRequest()//任何请求
.authenticated() ;//都要认证
}
一种是基于表单方式 formLogin().一种是基于 http basic()
基于表单方式。拦截器是使用UsernamePasswordAuthenticationFilter。
基于http basic方式。拦截器是使用 BasicAuthenticationFilter
启动之后控制台会生成密码
3、登录方式
表单登录、basic登录 基本差不多. 以表单登录为例
输入账户密码。
代码debug
在没有自定义
UserDetailsService的情况下。是拿
InMemoryUserDetailsManager。去查用户。它是从缓存中拿用户.(默认用户名是user password是控制台打印的)。
拿到用户之后去校验。
1、校验账户是否被锁定、是否启用、是否过期等。
2、校验账户密码是否相等.
4、关于UserDetailService 和PasswordEncoder是如何注入的
也就是说 这儿会自动定义.