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

鑑別過濾器

您可以使用鑑別過濾器,來決定特定 HTTP Servlet 要求是否交由特定提供者處理。

Liberty 設定檔伺服器的鑑別過濾器使用 server.xml 檔中之 authFilter 元素指定的過濾準則,來決定特定的 HTTP Servlet 要求是否交由特定提供者(例如:OpenID、OpenID Connect 或 SPNEGO)來處理,以進行鑑別。

如果符合 authFilter 元素中的所有條件,參照該 authFilter 元素的特定提供者就會處理 HTTP Servlet 要求。只要不符合 authFilter 元素中的任一條件,該提供者就不會處理 HTTP Servlet 要求。

支援的元素

authFilter 元素支援下列元素:userAgenthostwebAppremoteAddressrequestUrl

  • userAgent 元素會與對應的標頭值相互比較,這個標頭值擷取自送入的 HTTP Servlet 要求。userAgent 元素會與 "User-Agent" HTTP 要求標頭相互比較,這個標頭是識別原始要求所用的用戶端軟體。若為 Web 用戶端瀏覽器,此值會反映用來起始要求的瀏覽器類型(Internet Explorer、Firefox、Safari 等)。
  • host 元素的用法與 userAgent 元素類似。host 元素會與 "Host" HTTP 要求標頭相互比較,這個標頭是識別要求的目標主機名稱。
  • webApp 元素用來指定 Liberty 設定檔伺服器上所管理,並且要用這個鑑別過濾器保護的應用程式或應用程式清單。
  • remoteAddress 元素會與傳送該 HTTP 要求之用戶端應用程式的遠端 TCP/IP 位址相互比較。您可以配置萬用字元來指定子網路和範圍,作法是使用 matchType 屬性的 lessThangreaterThan 值,如這個主題後面的範例所示。
  • requestUrl 元素會與用戶端應用程式發出要求時所用的 URL 相互比較。可配置單一 URL 型樣或值清單(以垂直線字元分隔),如這個主題後面的範例所示。

「鑑別過濾器」範例

下列範例顯示鑑別過濾器的一般配置。在這裡,只要送入要求的要求 URL 含有 "/SimpleServlet",就會交由配置成使用這個過濾器的服務處理。

<authFilter id="myAuthFilter">
         <requestUrl id="myRequestUrl" urlPattern="/SimpleServlet" matchType="contains"/>
</authFilter>

在下列範例中,指定了要求 URL 清單(以垂直線字元分隔)。如果要由配置成使用這個過濾器的服務來處理送入要求,送入要求 URL 必須包含下列任一項:"/SimpleServlet""/EmployeeRoleServlet""/AllRoleServlet"

<authFilter id="myAuthFilter">
         <requestUrl id="myURL" urlPattern="/SimpleServlet|/EmployeeRoleServlet|/AllRoleServlet" matchType="contains" />
</authFilter>

在下列範例中,鑑別過濾器中指定了 Web 應用程式名稱。送入要求的目標必須是 "myApp" 應用程式,配置成使用這個過濾器的服務才會處理它。

<authFilter id="myAuthFilter">
         <webApp id="myWebApp" name="myApp" matchType="contains"/>
</authFilter>

在下列範例中,指定了 Web 應用程式清單(以垂直線字元分隔)。如果要由配置成使用這個過濾器的服務來處理送入要求,送入要求的目標必須是下列任一應用程式:"myApp1""myApp2""myApp3"

<authFilter id="myAuthFilter">
         <webApp id="myWebApp" name="myApp1|myApp2|myApp3" matchType="contains"/>
</authFilter>

下列範例顯示如何在 remoteAddress 元素中使用萬用字元。當使用這項配置時,只要要求來自 127.0.0.* 範圍中的任一 IP 位址,配置成使用這個過濾器的服務就會處理送入要求。

<authFilter id="myAuthFilter">
         <remoteAddress id="myRemoteAddress" ip="127.0.0.*" matchType="equals"/>
</authFilter>

下列範例顯示如何在 requestUrl 元素中使用值清單(以垂直線字元分隔)。只要符合清單中的任何型樣,就足以滿足該特定元素的需求。在本例中,要求 URL 必須包含 "/SimpleServlet""/EmployeeRoleServlet""/AllRoleServlet"。此外,要求 URL 不得包含 "/ManagerRoleServlet",且要求必須來自 Internet Explorer 使用者代理程式。

<authFilter id="myAuthFilter">
         <requestUrl id="myURL1" urlPattern="/SimpleServlet|/EmployeeRoleServlet|/AllRoleServlet" matchType="contains" />
         <requestUrl id="myURL2" urlPattern="/ManagerRoleServlet" matchType="notContain" />
         <userAgent id="myAgent" agent="IE" matchType="contains" />
</authFilter>
如果要由配置成使用這個過濾器的服務來處理送入要求,該要求必須符合下列條件:
  • 要求 URL 中包含 "/SimpleServlet" 型樣
  • 目標是含有 "host.example.com" 的網域
  • 來自 IP 位址 127.0.0.1
  • 來自 Firefox 瀏覽器
  • The name of the target application is myApp
<authFilter id="myAuthFilter">
         <requestUrl id="myRequestUrl" urlPattern="/SimpleServlet" matchType="contains"/>
         <host id="myHost" name="host.example.com" matchType="contains"/>
         <remoteAddress id="myAddress" ip="127.0.0.1" matchType="equals" />
         <userAgent id="myUserAgent" agent="Firefox" matchType="equals"/>
         <webApp id="myWebApp" name="myApp" matchType="contains"/>
</authFilter>

指示主題類型的圖示 參照主題

資訊中心條款 | 意見


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