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系列文章請 點擊這里 查看。
這是代碼 碼雲地址
注意注意!!!項目是使用分支的方式來提交每次測試的代碼的,請根據章節來我切換分支。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM