我的Spring Boot網絡應用程序使用帶有spring-boot-security的表單身份驗證。
我有兩個表:
用戶Spring引導安全 - 在啓動時創建root用戶
CREATE TABLE user
(
id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password CHAR(60) NOT NULL,
//...
);
角色
CREATE TABLE role
(
id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
r_name VARCHAR(45) NOT NULL
);
CREATE UNIQUE INDEX sys_role_r_name_uindex ON sys_role (r_name);
加入表
CREATE TABLE ref_user_role
(
user_id INT(11) NOT NULL,
role_id INT(11) NOT NULL,
// ...
);
爲了要添加更多具有其他角色/特權的用戶,必須在sys_role表中扮演角色ROLE_ROOT
。這個root用戶在邏輯上必須在add-more-users動作之前存在。
我已經試過是
- 我跑SQL腳本包含根用戶插入語句之前我部署的應用程序。很明顯,我還必須爲這個root用戶手動生成一個加密密碼。
- 我在語法上運行一個sql腳本來插入根憑證。我擔心的是將我的ROOT用戶憑據包含在data.sql文件中可能並不安全。如果我把密碼的加密版本,我必須事先進行加密。
我能想到的另一種方式是,我可以創造一個根創建頁面僅在第一次應用程序啓動。除了用戶名和密碼外,我還需要一個祕密代碼(只有我和應用程序都知道),以便其他隨機人員不能創建root帳戶。
這些是常見的方法嗎?
如果不是,有哪些好方法?
可以執行刪除/插入或更新/插入查詢務實在啓動時生成的加密密碼 – sura2k