データベースレルムを使用して<Realm>
、サーバー構成ファイルの要素でテーブル名と列名を構成するだけです。Tomcatの場合、これはRealmHOWTOで説明されています。JDBCRealmの章からの関連性の抜粋を次に示します。
クイックスタート
JDBCRealmを使用するようにTomcatを設定するには、次の手順に従う必要があります。
- まだ作成していない場合は、上記の要件に準拠するテーブルと列をデータベースに作成します。
- 少なくとも上記のテーブルへの読み取り専用アクセス権を持つTomcatで使用するデータベースのユーザー名とパスワードを構成します。(Tomcatがこれらのテーブルに書き込もうとすることはありません。)
- 使用するJDBCドライバーのコピーを
$CATALINA_HOME/lib
ディレクトリー内に配置します。JARファイルのみが認識されることに注意してください!
<Realm>
以下に説明するように、ファイルに要素を
設定し$CATALINA_BASE/conf/server.xml
ます。
- Tomcat 6がすでに実行されている場合は、再起動します。
レルム要素の属性
JDBCRealmを構成するには、
上記のよう<Realm>
に要素を作成してファイルにネストします。$CATALINA_BASE/conf/server.xml
JDBCRealmの属性は、レルム構成ドキュメントで定義されています。
例
必要なテーブルを作成するためのSQLスクリプトの例は、次のようになります(特定のデータベースに必要な構文を適応させます)。
create table users (
user_name varchar(15) not null primary key,
user_pass varchar(15) not null
);
create table user_roles (
user_name varchar(15) not null,
role_name varchar(15) not null,
primary key(user_name, role_name)
);
例の要素は、デフォルトのファイルRealm
に含まれています(コメントアウトされています)
。$CATALINA_BASE/conf/server.xml
これは、「authority」と呼ばれるMySQLデータベースを使用する例であり、上記のテーブルで構成され、ユーザー名「dbuser」とパスワード「dbpass」でアクセスされます。
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority?user=dbuser&password=dbpass"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>
かなり明確ですね。Tomcatで(接続プーリング以降の)JDBCデータソースがすでに構成されている場合は、代わりにDataSourceRealmを使用することもできます。
tomcat-users.xml
あなたが話しているのは、ちなみにUserDatabaseRealmと呼ばれるものです。