JSPで行こう!

アプリケーションでの認証設定

Realm の設定を終えている前提です。

Tomcat では、アプリケーション単位(webapps 直下のディレクトリ)で認証方法を変える事ができます。

以降は、Tomcat というより、J2EE の仕様から来ています。

Tomcat はそれを忠実に実装しているという事になります。

J2EE の仕様書はとても判り難いので、「datasource realm」 等で検索すると、詳しく解説されているサイトが見つかります。

アプリケーションの設定は、webapps/アプリ名/WEB-INF/web.xml に記述します。

で、「ここで何をしたいか」ということですが、主に

本当は、サンプルで manager アプリケーションの設定を見ていただければほぼ全て理解できますが、

あまりに設定項目が多いので、ここでは本サイトの設定を紹介します。(ほぼ最低限)

url-pattern で認証をチェックする URL(ここではファイル名と同じになりますが)を指定します。

逆に言えば、これ以外のファイルは素通りです。

例えば、.jpg や .png、.css といったファイルは認証チェックが掛かりません。もちろん必要なら掛けることもできます。

auth-constraint は許可に必要なロール(権限)になります。ここでは"*"ですので、ロールはチェックしません。

auth-method は固定の値を指定します。"FORM"は自分で作成したフォーム画面での入力を行います。

その他に"BASIC"、"DIGEST"、"CLIENT-CERT"が指定可能です。

realm-name が、server.xml で設定した Realm の名前になります。

form-login-page、form-error-page が、画面を表示する URL になります。

ここに指定した URL は認証チェックの対象にはなりません。(そうでないと表示できませんから)

また、仮にこれらの画面で、イメージファイルや css を読み込んでいると、もし url-pattern でこれらを認証チェック対象にしていると、

思った通りには表示できないことになります。

security-role は、security-constraint で使われるロールを列記しているだけです。(security-constraintは複数書けます)

error-page は http のエラーハンドルのページです。

指定しないと Tomcat デフォルトのエラー画面になります。当然ですがここで指定した画面は権限チェックの対象にはなりません。

この設定だけを見ると、ロールは使っていないかのように思えますが、ロールはプログラム内でも参照可能なので、

細かい権限による動きはプログラム内で行うことが出来ます。このほうが融通が利きます。

« 前頁 次頁 »