BASIC認証の第一歩:メモ
いや~あ、忘れるものだねえ。てことで、まずは認証の最初の一歩からのメモ。
BACIC認証設定法
tomcatでのBASIC認証によるログイン設定に関するメモです。
次の2つのファイルに記述を追加します。アプリケーションには一切手を入れる必要はありません。
- $CATALINA_HOME/webapps/アプリ/WEB-INF/web.xml
このアプリが認証を使うという指定を追加
- $CATALINA_HOME/conf/tomcat-users.xml
ユーザとパスワード指定を追加
$CATALINA_HOMEはTomcatをインストールしたディレクトリで、例えば
C:\Program Files\Apache Software Foundation\Tomcat 6.0
などです。
アプリはそれぞれのWEBアプリのディレクトリです。
単にログインを確認するだけのindex.htmlを使ったBASIC認証動作確認の説明をします。
==== $CATALINA_HOME/webapps/アプリ/index.html =====
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <html><head></head><body> <h1>login成功</h1> <p><input type=button onClick="window.close();" value="閉じる"></p> <p>この窓を閉じてもブラウザを終了させないとlogin状態は保持されます</p> </body></head>
==== $CATALINA_HOME/webapps/アプリ/WEB-INF/web.xml =====
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!--
<servlet>..</servlet>
<servlet-mapping>..</servlet-mapping>
-->
<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>login-test</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>BASIC Authentication</realm-name>
</login-config>
</web-app>
==== $CATALINA_HOME/conf/tomcat-users.xml =====
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="login-test"/> <user username="user1" password="pass1" roles="login-test"/> </tomcat-users>
index.htmlはこの試験のための仮のアプリケーションです。もちろん本物の
アプリケーションが使えます。サーブレットも当然可能です。
アプリケーション自体には認証に関わる設定は不要です。入口はindex.htmlに
限る訳ではなく、このアプリurl下のどのurlにアクセスしても、最初の一回
認証が働きます。
web.xmlにはBASIC認証をロール名"login-test"で行う指定を
追加しています。
この例は単純なindexファイルですのでサーブレットの設定などはありませんが、
通常はサーブレットの設定他があり、それにBASIC認証指定を追加することになります。
tomcat-users.xmlはTomcatインストール時に作成されてあるファイルで、
認証に関連する指定を行います。
ここで定めるのはロールで、このロール名を各アプリから参照します。
この例ではロールlogin-testを定義しています。
複数のロールを定義することができます。
ユーザ名とパスワードの組み合わせをロールに設定できます。
この例ではユーザuser1とそのパスワード
pass1をロールlogin-test
に設定しています。
もとろん一つのロールに複数ユーザを設定することができます。
サンプル
コピペでもよいのですが、ファイルも用意しました。
次のファイルを含みます。(1)loginAuth/index.html 疑似アプリ (2)loginAuth/WEB-INF/web.xml BASIC認証を行う指定 (3)loginAuth/conf/tomcat-users.xml tomcat-users.xmlの例 (4)loginAuth/README.txt このファイル(1)loginAuth/index.htmlと(2)loginAuth/WEB-INF/web.xmlを
$CATALINA/webapps/loginAuth/index.html
$CATALINA/webapps/loginAuth/WEB-INF/web.xml
におき、
$CATALINA/conf/tomcat-users.xml
に(3)loginAuth/tomcat-users.xmlの内容を付加すると
ブラウザでloginAuthにアクセスすればBASIC認証が働くようになります。
tomcat-users.xmlで設定したユーザ名user1とそのパスワード pass1を入れれば疑似アプリ画面が開きます。
[閉じる]ボタンで画面は閉じます(ブラウザによっては閉じないものもあります)。 しかし、ログアウトに相当する訳ではありません。ブラウザを終了させるまで あるいはセッションがタイムアウトするまで ログインした状態が保持されます。
| 固定リンク

