« ◇データ部だけスクロールするTABLE;HTMLメモ | トップページ | ◆CANVASを用いたHTMLスライダー »

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を入れれば疑似アプリ画面が開きます。

[閉じる]ボタンで画面は閉じます(ブラウザによっては閉じないものもあります)。 しかし、ログアウトに相当する訳ではありません。ブラウザを終了させるまで あるいはセッションがタイムアウトするまで ログインした状態が保持されます。

|

« ◇データ部だけスクロールするTABLE;HTMLメモ | トップページ | ◆CANVASを用いたHTMLスライダー »

トラックバック


この記事へのトラックバック一覧です: BASIC認証の第一歩:メモ:

« ◇データ部だけスクロールするTABLE;HTMLメモ | トップページ | ◆CANVASを用いたHTMLスライダー »