2015年9月10日木曜日

Glassfish+Derby+JDBCレルムについて(Derby(JavaDB)の設定)

JDBCレルム認証を実現するためにはまずデータベースの作成が必要です。
ここでは、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 件のコメント:

コメントを投稿