
![[8.5.5.4 以降]](../ng_v8554.gif)
Java Servlet 3.1 セキュリティー・サポートの構成
Liberty プロファイルは、Java™ Servlet 3.1 仕様に定義されたすべてのセキュリティー更新をサポートします。
このタスクについて
Java Servlet 3.1 フィーチャーを Liberty プロファイルで活用します。
手順
- server.xml ファイルに servlet-3.1 フィーチャーを追加します。
<feature>servlet-3.1</feature>
- 以下の Java Servlet 3.1 機能のどれを使用したいのかを判断します。
- ログイン・フォームに autocomplete=off を指定します。フォーム・ログイン・ページに HTML を使用する場合、 パスワード・フォーム・フィールドを autocomplete="off" に設定して、 Web ブラウザーでのパスワードの自動入力を使用不可にします。以下に例を示します。
<form method=”POST” action=”j_security_check”> <input type=”text” name=”j_username”> <input type=”password” name=”j_password” autocomplete=”off”> </form>
- 「すべて」の認証セキュリティー制約 (**) を指定します。特別な役割名である ** は、 任意の認証済みユーザーを示します。許可制約内に ** が表示される場合、 ユーザーが認証されていれば、ユーザーにはその制約内に指定されたメソッドへのアクセス権があります。アプリケーション・バインディングでユーザーがこの役割にマップされる必要はありません。以下に例を示します。
<security-constraint id="SecurityConstraint_1"> <web-resource-collection id="WebResourceCollection_1"> <web-resource-name>Protected with ** role</web-resource-name> <url-pattern>/AnyAuthSecurityConstraint</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint id="AuthConstraint_1"> <role-name>**</role-name> </auth-constraint> </security-constraint>
isUserInRole() メソッドが役割名 ** を指定して呼び出された場合、 isUserInRole() はユーザーが認証されていれば true を返します。** が構成で security-role 内に定義された役割である場合は、 これが何らかの特別な認証済みユーザー役割のように扱われることはありません。ユーザーがアプリケーション・バインディングでその役割にマップされていないと、 isUserInRole は true を返しません。
- web.xml ファイル内に deny-uncovered-http-methods フラグを指定します。web.xml ファイル内に deny-uncovered-http-methods エレメントが指定されている場合、 コンテナーは、カバーされていない HTTP メソッド (要求 URL に最もよく一致する URL パターンの結合セキュリティー制約内に列挙されていない HTTP メソッド) をすべて拒否します。403 (SC_FORBIDDEN) 状況コードが返されます。以下に例を示します。
<servlet-mapping id="ServletMapping_1"> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyURLPattern</url-pattern> </servlet-mapping> <deny-uncovered-http-methods/> <!-- SECURITY CONSTRAINTS --> <security-constraint id="SecurityConstraint_1"> <web-resource-collection id="WebResourceCollection_1"> <web-resource-name>Protected with Employee or Manager roles</web-resource-name> <url-pattern>/MyURLPattern</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint id="AuthConstraint_1"> <role-name>Employee</role-name> <role-name>Manager</role-name> </auth-constraint> </security-constraint>
web.xml ファイルに deny-uncovered-http-methods エレメントが指定されている場合、 各サーブレット内で URL パターンごとにメッセージが messages.log ファイルに記録され、そのメッセージでは、 カバーされていないメソッドが示され、また、それらのカバーされていないメソッドは保護されず、アクセス可能ではないということが説明されます。以下に例を示します。For URL MyURLPattern in servlet MyServlet, the following HTTP methods are uncovered, and not accessible: DELETE OPTIONS HEAD PUT TRACE
web.xml ファイルに deny-uncovered-http-methods エレメントが指定されていない場合、 各サーブレット内で URL パターンごとにメッセージが messages.log ファイルに記録され、そのメッセージでは、 カバーされていないメソッドが示され、また、それらのカバーされていないメソッドは保護されず、アクセス可能であるということが説明されます。 以下に例を示します。For URL MyURLPattern in servlet MyServlet, the following HTTP methods are uncovered, and accessible: DELETE OPTIONS HEAD PUT TRACE
- ログイン・フォームに autocomplete=off を指定します。
タスクの結果
関連概念:

インフォメーション・センターに関するご使用条件 | フィードバック

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_servlet31
ファイル名: twlp_servlet31.html