私のスプリングブートWebアプリケーションは、スプリングブートセキュリティでフォーム認証を使用します。
私は2つのテーブルを持っている:スプリングブートセキュリティ - 起動時にルートユーザを作成する
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 user
(
id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
username VARCHAR(255) NOT NULL,
password CHAR(60) NOT NULL,
//...
);
役割がために、テーブル
CREATE TABLE ref_user_role
(
user_id INT(11) NOT NULL,
role_id INT(11) NOT NULL,
// ...
);
に参加他のロール/権限を持つユーザーを追加するには、ROLE_ROOT
のロールをsys_roleにする必要があります。このrootユーザーは、add-more-usersアクションの前に論理的に存在する必要があります。私はを試してみました何
は
- は私がアプリを展開する前に、ルート・ユーザーの挿入文を含むSQLスクリプトを実行したということです。明らかに、私はこのrootユーザーのために暗号化されたパスワードを手動で生成しなければなりませんでした。
- 文法的にsqlスクリプトを実行してルート資格情報を挿入します。私の懸念事項は、ROOTユーザーの資格情報をdata.sqlファイルに含めることが安全でない可能性があるということです。暗号化されたバージョンのパスワードを置くと、事前に暗号化する必要があります。私は考えることができる
別の方法は、私はアプリが起動します初回のみルート作成・ページを作成することができるということです。他の人がルートアカウントを作成できないように、ユーザー名とパスワードに加えて秘密のコード(私とアプリケーションだけが知っている)が必要です。
これを行う一般的な方法はありますか?
そうでない場合は、どのような良い方法がありますか?
あなたが実践的、起動時に生成された暗号化パスワード – sura2k