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

posted @ 2020-05-13 22:50  Leader_TBlog  阅读(184)  评论(0编辑  收藏  举报