2009-07-17

JDBC Realm(アプリケーションごと個別指定)

JDBC Realmを設定してみた。

使いようによってはすごく便利。

テーブルはユーザーID,パスワードのテーブル、ユーザーID,ロール名のテーブルの2つを用意する。
ユーザーIDのカラム名は同じである必要がある。
ロール名は複数指定する場合、必要なだけレコードを追加する。

アプリケーションごとにRealmを指定する場合、Realm設定を<Context>の中に配置する。

<Realm className="org.apache.catalina.realm.JDBCRealm"
dataSourceName="jdbc/userdb"
userTable="users"
userNameCol="user_id"
userCredCol="password"
userRoleTable="role"
roleNameCol="role" />


*Tableにテーブル名を記載する。DB2の場合スキーマも合わせて指定する。
例:
userdbschema.user
userdbschema.role

Servletエンジンの認証であれば認証前のアクセスしていたURLに認証後アクセスする。
認証後のユーザーはHttpServletRequest#getRemoteUser()で取得する。
名前などの付加情報は認証後の最初に必要とされる処理で記述する。

SAStrutsであればボタンごとの権限チェックも簡単にできる。

0 件のコメント: