JSPで行こう!

Realmの設定例

Tomcat の JDBCRealm の設定例です。

まず、利用する Realm を conf/server.xml 内に記述しなければなりません。

UserDatabaseRealm は、Tomcat をインストールした時の manager アプリケーションで使われています。
従って、設定もデフォルトでされています。

ユーザーの登録等は、初期画面のコメントに従っていけば、おおよそ出来ると思います。

前にも書きましたが、単に、ユーザーIDとパスワードだけを管理するのではなく、
「役割(ロール)を定義してそれをユーザーに割り当てている」という点を理解しておいてください。

「権限なんて必要ない!」というのであれば、それはそれでかまいませんし、
適当な権限を設定しておいて、"後で使わない"という選択もあります。

代表的な、JDBC による Realm の例を紹介します。

JDBCRealm によるユーザー管理

 まず、データベース側にテーブルを作成します。

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)
);

公式サイトでは、MySQL を例にしていますので、
ここでは、PostgreSQL で、DataSourceRealm を使っています。

まず、データソースを設定します。

testdb というデータベース名の例です。

</GlobalNamingResources>
           :
       <Resource
                name="jdbc/testdb"
                type="javax.sql.DataSource"
                auth="Container"
                driverClassName="org.postgresql.Driver"
                url="jdbc:postgresql://localhost:5432/testdb"
                username="hogehoge"
                password="xxxx"
                maxActive="20"
                maxIdel="5"
                maxWait="5000" />

</GlobalNamingResources>

上記の後に、Realm を設定します。接続情報を2回書かなくて良い。というメリットがあります。

<Realm className="org.apache.catalina.realm.DataSourceRealm"
   dataSourceName="jdbc/testdb"
   userTable="users" userNameCol="user_name" userCredCol="user_pass"
   userRoleTable="user_roles" roleNameCol="role_name"/>

後、当然ですが複数の Realm を定義してもかまいません。

« 前頁 次頁 »