Liberty Repository[8.5.5.5 或更高版本]

认证过滤器

可使用认证过滤器确定特定 HTTP servlet 请求是否由特定提供者处理。

Liberty 概要文件服务器认证过滤器使用 server.xml 文件的 authFilter 元素中指定的过滤条件来确定特定 HTTP servlet 请求是否由特定提供者(例如,OpenID、OpenID Connect 或 SPNEGO)处理以获取认证。

如果满足 authFilter 元素中的所有条件,那么该 HTTP servlet 请求由 authFilter 元素引用的特定提供者处理。如果没有满足 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 模式或若干值的管道列表,如本主题中之后示例所示。

认证过滤器示例

以下示例显示认证过滤器的典型配置。此处,带有包含 "/SimpleServlet" 的请求 URL 的任何传入请求由配置为使用此过滤器的服务处理。

<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 应用程序的管道列表。要使用配置为使用此过滤器的服务处理传入请求,传入请求 URL 必须以 "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 浏览器
  • 目标应用程序的名称为 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>

用于指示主题类型的图标 参考主题

信息中心的条款和条件 | 反馈


时间戳记图标 最近一次更新时间: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=rwlp_auth_filter
文件名:rwlp_auth_filter.html