前回にBasic認証の方法を記載したが、今回はBasic認証のユーザー情報をデータベースで管理する方法記載。
[Tomcat] Basic認証
1. Webアプリケーションのフォルダ構成
フォルダ構成
webdav
│
├─META-INF
│ context.xml★
│
└─WEB-INF
│ web.xml
│
└─lib
2. context.xmlにRealmを記載
context.xmlにRealm情報を記載する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Context [ <!ENTITY ipAddress "localhost"> <!-- IPアドレス --> <!ENTITY databaseName "sample_db"> <!-- データベース名 --> ]> <Context path="/SampleWeb" reloadable="false" docBase="SampleWeb" workDir="/usr/local/tomcat7/work/SampleWeb" > <Realm className="org.apache.catalina.realm.JDBCRealm" driverName="org.gjt.mm.mysql.Driver" connectionName="db_user" connectionPassword="db_pass" connectionURL="jdbc:mysql://&ipAddress;:3306/&databaseName;" userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name" /> </Context> |
3. データベース/テーブルの作成・ユーザー情報の登録
ユーザー情報を管理するデータベース/テーブルを作成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
-- データベースの作成 CREATE DATABASE sample_db -- ユーザー情報テーブル 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) ); |
上記で作成したテーブルにユーザー情報を登録する。
4. JDBCのJARファイルを配置
以下にJDBCのJARファイルを配置する。ここでは「mysql-connector-java-5.1.25-bin.jar」を配置。
{TOMCATホーム}\lib
※WEB-INF\lib配下だけではビルドエラーになってしまうので、上記にも配置すること。
以上☆。