• Spring Security2、如何修改默认的账号密码


    在启动项目时,security会自动生成密码,用户名也是固定的。

    这样我们每次都要去复制密码,这个有点麻烦啊。

    那么我们要怎么修改成自己的呢?

    在使用SpringBoot时我们在引入依赖时,如果需要修改一些自动装载的默认配置,我们立刻就创建一个对应的配置类,那么security也不例外,我们直接创建一个配置类 SecurityConfig.java

    至于 SecurityConfig 要如何配置呢,可以到 Spring Security 官网去瞅瞅。

    下面的代码是根据官网给出的例子,进行测试了正常的。

    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
    
    /**
     * Security配置类,会覆盖yml配置文件的内容
     *
     * @author lixingwu
     */
    @EnableWebSecurity
    @Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth.inMemoryAuthentication()
                    // 定义加密方式,不然启动不了
                    .passwordEncoder(new BCryptPasswordEncoder())
                    // 设置用户名
                    .withUser("admin")
                    // 设置密码(密文密码)
                    .password(new BCryptPasswordEncoder().encode("123456"))
                    // 设置角色,不设置启动不了
                    .roles("");
        }
    }
    
    

    在配置类中,我是设置了一个用户,他的用户名为 admin 密码为 123456,这样的话,我们就可以使用自己定义的账号密码来登录了。

    现在我们已经把默认的账号密码修改了,以后登录就可以使用我们设置的账号密码了。

    因为我们设置了自定义的账号密码,默认的账号user也就失效了,控制台也不会打印密码了。

    说明

    (1)创建的配置类要继承 WebSecurityConfigurerAdapter 类。

    (2)使用@EnableWebSecurity注解来启用Security,不然配置不会生效。

    (3)WebSecurityConfigurerAdapter 中的configure方法有多个,要重写参数是AuthenticationManagerBuilder的这一个。

    (4)密码的加密方式要统一,不然输入的明文加密后和设置的密文不一致,导致登录不了,一般我们就用BCryptPasswordEncoder,没有特殊需要就用这个。

    (5)用户角色我们现在先设置为空,不然启动不了,后面授权需要我们在设置。

    spring security系列文章请 点击这里 查看。
    这是代码 码云地址
    注意注意!!!项目是使用分支的方式来提交每次测试的代码的,请根据章节来我切换分支。

  • 相关阅读:
    mac系统怎么给文件夹加密?mac文件夹加密教程
    android 代码优化:关闭输出日志
    mac下安装eclipse+CDT
    Android JNI MAC OS环境配置
    在mac下设置环境变量
    build_native.py文件分析(2)
    使Android 自带SDK 完美支持HTML5 之 html5webview
    WebView基本使用
    android EditText如何使光标随着输入内容移动
    mac下增加eclipse内存
  • 原文地址:https://www.cnblogs.com/lixingwu/p/13281262.html
Copyright © 2020-2023  润新知