02-手工配置用户名密码
通过配置文件配置
spring.security.user.name=javaboy
spring.security.user.password=1234
# 角色: 支持数组
spring.security.user.roles=admin
配置完毕,再次启动项目,访问 /hello
一样的输入用户名密码 这次的用户名和密码就是当前自己配置的了
通过代码配置
创建一个 配置类
添加 @Configuration
注解,继承 WebSecurityConfigurerAdapter
继承完毕之后,有几个方法需要我们自己重写一下 configure
注意
configure有 3
个重载的
我们需要的是
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// 基于内存的认证
auth.inMemoryAuthentication()
// 配置第一个
.withUser("javaboy").password("1234").roles("admin")
.and()
// 配置第二个
.withUser("xhh").password("1234").roles("user");// 到了这里,就相当于内存里面配置了两个用户
}
本来这种写法是没有任何问题的,但是呢,从Spring5 开始,Spring5之前这个写法是没有任何问题的,Spring5开始的话SpringSecurity里面的这个密码的话呢,是一定要加密的,不加密的话直接运行它是有问题的,密码加密待会再说,因为还有要解释的地方,在这里我先提供一个不需要加密的方案,但是这个方案是过期的方案,密码加密就是要配置一个编码器
编码器配置
/**
* 表示告诉系统,我的这个密码现在不加密
* 一会用户在前端输入的时候
* 就输入1234就能登陆上来
* 这是一个过期的方案,后面我在详细的介绍密码加密的问题
* @return
*/
@Bean
PasswordEncoder passwordEncoder(){
return NoOpPasswordEncoder.getInstance();
}
不管你是在 配置文件或者是 配置类配置的 都是写死的,我们最终的话,还是在数据库里面加载数据库的用户,一会再说
源码下载地址:https://github.com/XiaoHuiHuiT/SpringSecurity-case/releases/tag/2.0