Java Servlet 3.1 セキュリティー・サポートの構成

WebSphere® Application Server traditional は、Java™ Servlet 3.1 仕様に定義されているすべてのセキュリティー更新をサポートします。

このタスクについて

WebSphere Application Server traditional で Java Servlet 3.1 のフィーチャーを活用します。

手順

  1. server.xml ファイルに servlet-3.1 フィーチャーを追加します。
    <feature>servlet-3.1</feature>
  2. 以下の 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

タスクの結果

これでアプリケーションが保護されました。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_servlet31
ファイル名:tsec_servlet31.html