Tomcat6.0の覚書

|Tomcatのメニューへ|


Tomcat 認証

DataSourceレルムを使用

例)

create table user_auths (
  user_id         varchar(16) not null primary key,
  user_pass         varchar(16) not null
);

create table user_roles (
  user_id         varchar(16) not null,
  role_name         varchar(16) not null,
  primary key (user_name, role_name)
);

例)

insert into user_auths values(
    '0001', 'pass'
);

insert into user_roles values(
    '0001', 'basic'
);

データーソース名がjdbc/myoracleの場合

<Realm className="org.apache.catalina.realm.DataSourceRealm" debug="99"
   dataSourceName="jdbc/myoracle"
   userTable="user_auths" userNameCol="user_id" userCredCol="user_pass"
   userRoleTable="user_roles" roleNameCol="role_name"/>

BASIC認証の使用

全urlが対象、roleとして"basic"のみ許可する場合。

<security-constraint>
    <web-resource-collection>
      <web-resource-name>
        Authentication of BasicAuth
      </web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>basic</role-name>
    </auth-constraint>
</security-constraint>
	
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>DataSourceRealm</realm-name>
</login-config>

FORM認証の使用

例)login.jsp

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Login</title>
</head>
<body>
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table><tr>
    <th>ユーザID</th>
    <td> <input type="text" name="j_username" maxlength="16" style="width:130px;"/></td>
</tr><tr>
    <th>パスワード</th>
    <td><input type="password" name="j_password" maxlength="16" style="width:130px;"/></td>
</tr>
</table>
<br>
<input type="submit" value="ログイン">
</form>
</body>
</html>

例)loginErr.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Error</title>
</head>
<body>
LOGINエラーです。
</body>
</html>

ログアウト処理を追加