Liberty 儲存庫[8.5.5.4 或更新版本]

配置 Java Servlet 3.1 安全支援

Liberty 設定檔支援 Java™ Servlet 3.1 規格中所定義的所有安全更新項目。

關於這項作業

在 Liberty 設定檔上利用 Java Servlet 3.1 特性。

程序

  1. 新增 servlet-3.1 特性到 server.xml 檔:
    <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。如果 ** 在配置中是安全角色中所定義的一個角色,不會將它視為任何特殊的已鑑別使用者角色。在應用程式連結中,使用者必須對映至該角色, isUserInRole 才會傳回 true。

    • web.xml 檔中指定 deny-uncovered-http-methods 旗標。
      如果在 web.xml 檔內指定 deny-uncovered-http-methods 元素,儲存器會拒絕任何未涵蓋的 HTTP 方法,亦即這些 HTTP 方法未列舉在要求 URL 最符合之 URL 型樣的合併安全限制內。會傳回 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 元素,會在 messages.log 檔中,針對每一個 Servlet 的每一個 URL 型樣記載訊息,以指出未涵蓋的方法,並附註那些未涵蓋的方法未受保護且無法存取。例如:
      對於 Servlet MyServlet 中的 URL MyURLPattern,下列 HTTP 方法未涵蓋且無法存取:DELETE OPTIONS HEAD PUT TRACE
      如果未在 web.xml 檔中指定 deny-uncovered-http-methods 元素,會在 messages.log 檔中,針對每一個 Servlet 的每一個 URL 型樣記載訊息,以指出未涵蓋的方法,並附註那些未涵蓋的方法未受保護且可以存取。例如:
      對於 Servlet MyServlet 中的 URL MyURLPattern,下列 HTTP 方法未涵蓋,且可以存取:DELETE OPTIONS HEAD PUT TRACE

結果

現在,您的應用程式已獲得安全維護。

指示主題類型的圖示 作業主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_servlet31
檔名:twlp_servlet31.html