Sun Java System Portal Server 7.1 管理指南

过滤函数

过滤函数在“元数据”和“数据”阶段运行,以根据函数及其属性指定的具体条件来允许或拒绝资源。在 filter.conf 文件的“枚举”和“生成”过滤器中均可使用这些函数。

每个 filter-by 函数执行一次比较,然后允许或拒绝资源。允许资源表示继续进行下一过滤步骤。拒绝资源则表示应停止处理过程,因为资源不符合进行进一步枚举或生成的条件。

filter-by-exact

如果 allow/deny 字符串与信息源完全匹配,则 filter-by-exact 函数将允许或拒绝资源。关键字 all 表示与任意字符串匹配。

属性

src

信息源

allow/deny

包含字符串

示例

以下示例将过滤出 content-type 为 text/plain 的所有资源。它允许其他所有资源继续进行以后的处理:

Data fn=filter-by-exact src=type deny=text/plain

filter-by-max

如果指定信息源的值小于或等于给定值,则 filter-by-max 函数将允许该资源。如果信息源的值大于指定值,则会拒绝该资源。

每个过滤器只能调用一次此函数。

属性

filter-by-max 函数列出与 filter-by-max 函数一起使用的属性。

src

信息源:主机、对象或深度

value

指定用于比较的值

示例

本示例允许 content-length 小于 1024 KB 的资源:

MetaData fn-filter-by-max src=content-length value=1024

filter-by-md5

filter-by-md5 函数只允许第一个含有给定的 MD5 校验和值的资源。如果此 robot 在较早的资源中看到当前资源的 MD5,则拒绝当前资源。该功能可防止相同资源或有多个 URL 的单个资源发生重复。

只能在“数据”阶段或之后调用此函数。每个过滤器只能调用一次此函数。过滤器必须调用 generate-md5 函数来生成 MD5 校验和,然后才能调用 filter-by-md5

属性

示例

以下示例显示处理 MD5 校验和的典型方法,即首先生成校验和,然后根据它进行过滤:

Data fn=generate-md5

Data fn=filter-by-md5

filter-by-prefix

如果提供的信息源以指定的字符串前缀开始,则 filter-by-prefix 函数将允许或拒绝资源。资源无须完全匹配。关键字 all 表示与任意字符串匹配。

属性

src

信息源

allow/deny

包含用于进行前缀比较的字符串

示例

以下示例允许 content-type 为任何文本类型(包括 text/htmltext/plain)的资源:

MetaData fn=filter-by-prefix src=type allow=text

filter-by-regex

filter-by-regex 函数支持正则表达式模式匹配。它允许与给定正则表达式匹配的资源。支持的正则表达式语法由 POSIX.1 规范定义。正则表达式 \\\\* 表示匹配任意项目。

属性

src

信息源

allow/deny

包含正则表达式字符串

示例

以下示例拒绝来自 .gov 域站点的所有资源:

MetaData fn=filter-by-regex src=host deny=\\\\*.gov

filterrules-process

filterrules-process 函数处理 filterrules.conf 文件中的站点定义和过滤器规则。

属性

示例

MetaData fn=filterrules-process