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

  • 相关阅读:
    用JS + WCF打造轻量级WebPart
    提高WCF服务并发能力的简单处理办法
    利用JQuery实现更简单的Ajax跨域请求
    WCF Testing Tool(转)
    [转贴]一个有趣的布局
    [转贴].net中上传视频并将各种视频文件转换成.flv格式
    IE5,IE6,IE7,IE8的css兼容性列表[转自MSDN]
    [转贴]Castle 开发系列文章
    ie6,ie7,ff 的css兼容hack写法
    ExtJs学习笔记(23)ScriptTagProxy+XTemplate+WCF跨域取数据
  • 原文地址:https://www.cnblogs.com/lixingwu/p/13281262.html
Copyright © 2011-2022 走看看