ここでは、NetBeansをつかってローカルのJavaDB上にJDBCレルム認証に利用するデータベースを構築する方法を説明します。
NetBeansのサービスタグを選択、JavaDBを右クリックしてデータベースの
作成を選択します。
ここでは、データベース名をAuthenticationSampleとして作成しています。
ユーザ名はAPP, パスワードもユーザ名と同じにしています。
(当然ですが、本番環境での利用の際にはユーザ名、パスワードともに配慮が必要です。)
これで、JavaDB上にAuthenticationSampleデータベースが作成されました。
次は新規の接続先として先ほど作成したAuthenticationSampleに接続します。
下記のような設定を行ってください。
これで、接続先の設定が完了しました。
次にテーブルの作成に移ります。
テーブルの作成には先ほど作成した接続先を右クリックし、
コマンドの実行を選択します。新しい画面が開くので、下記のSQLを入力し、
usertableとgrouptableを作成します。
create table usertable ( username varchar(20) NOT NULL CONSTRAINT USER_PK PRIMARY KEY , mailaddress varchar(100) NOT NULL, password varchar(128) NOT NULL ); create table grouptable( username varchar(20) NOT NULL, groupid varchar(20) NOT NULL, CONSTRAINT GROUP_PK PRIMARY KEY(username, groupid), CONSTRAINT USER_FK FOREIGN KEY(username) REFERENCES usertable(username) ON DELETE );
これで、JDBCレルム認証用のデータベースが作成できました。
次以降の設定で必要となる内容は以下の通りです。
usertableのパスワード列には生パスワードではなく、SHA-256でハッシュ化した
値を入れないといけません。こちらについてはサンプルコードを
寺田佳央さんが提供してくれています。
https://github.com/yoshioterada/JDBC-Realm-Sample/tree/master/src/main/java/jp/co/oracle/jdbcrealm/SHADigestUtil
以下の情報は次回以降に利用するため、記載しておきます。
JDBC URL: jdbc:derby//localhost:1527/AuthenticationSample
データベース名: AuthenticationSample
データベースのユーザ名/パスワード: APP/APP
ユーザテーブル: usertable
ユーザ名: username
パスワード: password
グループテーブル: grouptable
ユーザ名: username
グループ名: groupid
0 件のコメント:
コメントを投稿