zoukankan      html  css  js  c++  java
  • 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系列文章请 点击这里 查看。
    这是代码 码云地址
    注意注意!!!项目是使用分支的方式来提交每次测试的代码的,请根据章节来我切换分支。

  • 相关阅读:
    Linux C/C++编程之(三)常用命令之文件处理命令
    linux下查看activiti流程图乱码
    基于区块链的自主身份和可信声明
    数字证书PKI原理
    Linux C/C++编程之(二)常用命令之目录处理命令
    Linux C/C++编程之(一)VMware 虚拟机安装Ubuntu16.04 图解
    移动端专项测试-内存泄漏
    centos7 netstat命令使用场景 杂记
    《java入门第一季》之面向对象(构造方法)
    《java入门第一季》之面向对象this关键字
  • 原文地址:https://www.cnblogs.com/lixingwu/p/13281262.html
Copyright © 2011-2022 走看看