4 |
|
部署 Content Delivery Server 后,应配置对系统的访问权限。您可能需要在防火墙后面运行某些组件,或者阻止外部系统进行访问。您还可能需要支持容易记住的 URL。
Content Delivery Server 将会生成 URL,以便从外部实体(如订户设备)访问其组件。如果在防火墙后面运行 Content Delivery Server,则必须能够从防火墙外部访问这些 URL。使用的初始值是在部署配置文件中为 prefix.external.uri 属性设置的值,其中 prefix 是用于标识组件的字符串。如果在部署前未设置这些属性,请在 $CDS_HOME/deployment/deployment-name/conf 目录下的 CDS.properties 文件中设置以下属性。
此外,还必须将 Vending Manager Server 帐户的网络 ID 设置为运行 Web 服务器的主机的内部 IP 地址。使用 Catalog Manager 管理控制台可以更新 Vending Manager Server 帐户。有关详细信息,请参见联机帮助中的“添加 Vending Manager Server 帐户”主题。
提示 - 要验证 Catalog Manager 是否可以访问 Vending Manager,请在运行 Catalog Manager 的主机上启动浏览器。将浏览器指向 http://vending-manager-ip。如果无法显示页面,则必须更正为 Vending Manager Server 帐户(与要访问的 Vending Manager 相关联)指定的域名。 |
通过由内部和外部 URL 属性(在部署配置文件中设置)生成的 URL,可以访问 Content Delivery Server 组件(请参见 A)。要禁止未经授权的访问,请在访问控制文件中设置规则,以定义允许什么样的访问权限。默认访问控制文件允许所有请求者进行访问。
注 - 无需停止服务器即可更新访问控制文件。如果在 Content Delivery Server 运行时更改了该文件,将在下一次向服务器发出请求时强制重新装入该文件。新的规则将立即生效。 |
$CDS_HOME/deployment/deployment-name/conf 目录中的 access_control.config 文件用于确定何时允许访问 Content Delivery Server 组件。此文件包含以下类型的语句:
访问控制列表是由关键字 acl 和唯一标识列表的名称标识的。该列表包含一个或多个地址模式。语句的格式为 acl acl-name {address-patterns}。
acl-name 是由数字和字母组成的字符串(包括下划线),并且不能与任何语句中使用的任何关键字相匹配。address-patterns 是一个或多个主机名、IP 版本 4 (IPv4) 地址掩码或 IP 版本 6 (IPv6) 地址掩码。有关对 Backus Naur Form (BNF) 表示法中此语句的完整描述,请参见 B。
URI 组是由关键字 uri_group 和唯一标识该组的名称标识的。该组包含一个或多个相对路径。语句的格式为 uri_group group-name {paths}。
group-name 是由数字和字母组成的字符串(包括下划线),并且不能与任何语句中使用的任何关键字相匹配。paths 是包含 Servlet 上下文名称的一个或多个绝对 URI,这些 URI 表示为正则表达式。有关对 BNF 表示法中此语句的完整描述,请参见 B。
引用 URI 组的规则的格式为:
access group group-name protocol protocol method method {control-list}。group-name 是为文件中的某个 URI 组指定的名称。protocol 是请求中使用的协议,它是 http、https 或 any。method 标识所请求的操作,它是 get、post、put 或 any。control-list 是一个语句列表,用于表示允许访问和拒绝访问的地址。
有关对 BNF 表示法中此语句的完整描述,请参见 B。有关如何解释规则的信息,请参见下一节。
收到要求访问 Content Delivery Server 组件的请求时,将使用访问控制文件中的规则来确定是否允许访问。
将按照规则在文件中出现的顺序来处理它们。除非遇到关键字 final,否则会将请求与文件中的所有规则进行比较。最后一个匹配的规则确定是否允许访问。通常,您需要在文件结尾处放置限制性较强的规则。
final 关键字将停止匹配进程。此关键字可以出现在规则开头,也可以出现在规则中任何控制列表的结尾。如果此关键字出现在规则的开头,则当请求源与规则的任何控制列表中的地址相匹配时,都会停止匹配进程。如果此关键字出现在某个控制列表的结尾,则仅当请求源与该控制列表中的地址相匹配时,才会停止匹配进程。
当匹配进程停止时,将由包含请求源地址的控制列表中的关键字来确定请求状态。如果关键字为 allow,则允许访问。如果关键字为 deny,将拒绝访问并返回错误代码 404。
如果没有匹配的规则,将允许访问。要拒绝所有与任何规则均不匹配的请求进行访问,请将以下规则添加到规则的开头:
access uri `/.*' protocol any method any {deny any;}
别名转发是一种技术,用于接受 URL 并将用户重定向到其他位置。通过此功能,可以为订户提供容易记忆的 URL,并可将请求重定向到正确位置。还可以使用此功能来截取请求,并将其重定向以进行特殊处理。
Content Delivery Server 的 URL 映射是在 aliasforwarding.xml 文件中定义的。该文件位于 $CDS_HOME/deployment/deployment-name/conf 目录中。要使用其他文件,请在 $CDS_HOME/deployment/deployment-name/conf 目录下的 DefaultWebApp.properties 文件中设置 filter.AliasForwarding.file 属性。
别名转发文件是一个过滤器,它使用 XML 来描述收到 URL 时执行的重定向。下表描述了此文件中的元素。
标识 Web 应用程序的上下文根路径,请求将被重定向到该 Web 应用程序。指定的值必须是现有的上下文根路径,它是随部署了 Content Delivery Server 的应用服务器一起部署的。默认情况下,Content Delivery Server 将应用程序部署在以下上下文根路径中: |
|
别名转发过滤器将部署到上下文根路径 /DefaultWebApp 中,Content Delivery Server 将该根路径设置为 Content Delivery Server 请求的默认应用程序。不包含与已知上下文根路径相匹配的 URL 的请求将被发送到默认应用程序,并由该过滤器进行处理。包含与已知上下文根路径相匹配的 URL 的请求将直接发送到应用程序,不由此过滤器进行处理。例如,基于代码示例 4-1 中的映射,对 /sub 的请求将由此过滤器进行处理,然后重新路由到 /subscriber。但是,对 /subscriber 的请求将直接发送到应用程序,而不由此过滤器进行处理。
当 Content Delivery Server 的默认应用程序收到请求时,会根据以下规则将传入 URL 与别名转发文件中的每个 URLPattern 元素进行匹配:
找到匹配项后,进程将停止。然后,请求将被重定向到通过附加 TargetContext 和 TargetPath(与传入请求匹配的 URLPattern 相关联 )值得到的位置。如果未找到匹配项,则将请求返回到应用服务器。
根据定义映射的方式,在找到匹配项时,新位置也可能由过滤器进行处理。请确保未创建循环映射,此类映射只能生成由过滤器处理的 URL,而不会生成被重定向到实际位置的 URL。
Sun Java System Application Server 包含一个安全管理器,它可以阻止未在安全策略中定义所需权限的应用程序进行访问。此策略是一个名为 server.policy 的文件;在进行部署后,它位于 $CDS_HOME/deployment/deployment-name/sun/domains/server-domain/config 目录中。
如果使用《Sun Java System Content Delivery Server 5.1 定制指南》中介绍的 API 编写您自己的适配器,单单使用安全策略中的一组默认权限,并不足以保证适配器能够成功运行。请编辑 server.policy 文件以添加适配器所需的任何定制权限,然后重新启动 Content Delivery Server。有关安全策略的详细信息,请参见 Sun Java System Application Server 文档。
版权所有 © 2008, Sun Microsystems, Inc. 保留所有权利