前言
本文是常见Java Web应用中使用Spring Security的核心。一个Web应用管理系统在用户登陆上最核心的问题就是解决两个问题:1、用户提交的账号密码如何与数据库中保存的账号密码匹配上;2、如何保持会话。本文就是解决第一个问题的。
Spring Security自带存取方式
Spring Security自带了两种存取的方式:内存方式,JDBC方式。虽然实际应用中极少会用到这两种方式,但是可以先进行了解,因为后面讲述自定义方式时,也得先向这两种方式取经。
内存方式
内存方式是Spring Security的默认配置方式。如《Spring Security学习(一)——快速开始》建的应用,使用的就是内存方式。
我们可以进行如下配置,在WebSecurityConfig中配置:
@EnableWebSecurity
public class WebSecurityConfig{
@Bean
public UserDetailsService userDetailsService() {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withDefaultPasswordEncoder().username("abc").password("123").roles("USER").build());
manager.createUser(User.withDefaultPasswordEncoder().username("admin").password("456").roles("ADMIN").build());
return manager;
}
@Bean
public SecurityFilterChain formLoginFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.anyRequest().authenticated()
)
.formLogin(Customizer.withDefaults());
return http.build();
}
}
第4-10行新建一个用内存方式管理的类,然后创建以默认密码加密方式创建两个账户,一个账号叫abc、密码123,,另一个账号叫admin、密码456。12-20行还是保持《Spring Security学习(四

最低0.47元/天 解锁文章






