B


访问控制定义

$CDS_HOME/deployment/deployment-name/conf 目录中的 access_control.config 文件用于确定何时允许访问 Content Delivery Server 组件。本节使用 BNF 表示法来描述访问控制文件中使用的语句。可以在 http://rfc.net/rfc2234.html 中找到此表示法的描述。

该访问控制文件包含访问控制列表、URI 组以及规则。以下代码样例显示了每种语句类型的示例。


acl sun {
    host '*.sun.com';
    ip6 ::1;
}
uri_group vending_service {
    uri '/vsadmin/main/sync_to_catalog.*';
    uri '/subscriber/mo_push.*';
}
access uri '/.*' protocol any method any {
    deny any;
}
final access group vending_service protocol any method any {
    allow sun;
}

 

有关设置访问控制文件的信息,请参见 4.2, 控制外部系统的访问

要创建访问控制语句,请使用以下规则:


代码示例 B-1 访问控制语句的 BNF 规则
acl_def = "acl" acl_name "{" 1*source "}"
source = host_name [ nummask ] ";"
host_name = ip4addr | ip6addr | dnsname | "any"
nummask = "/" decnumber
ip4addr = "ip4" hostnum "." hostnum "." hostnum "." hostnum
ip6addr = "ip6" ipv6_address
hostnum = digit [ digit [ digit ] ]
decnumber = digit [ decnumber ]
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
dnsname = "host" "'" hostname_string "'"
rule = [ "final" ] "access" uri "protocol" 1#protocols
       "method" 1#methods  "{" 1*control "}"
uri = "uri" "'" uri_regexp "'" | "group" uri_group_name
uri_group = "uri_group" uri_group_name "{" 1*group_def "}"
group_def = "uri" "'" uri_regexp "'" ";"
control = ( "allow" | "deny" ) ( acl_name | "any" ) [ "final" ] ";"
protocols = "http" | "https" | "any"
methods = "get" | "post" | "put" | "any"
config = *acl *uri_group *rule
 

以下标记不是使用 BNF 表示法定义的:

支持压缩和完整的形式,例如:


# 12AB:0000:0000:CD30:0000:0000:0000:0000 OR
# 12AB::CD30:0:0:0:0
# 12AB:0:0:CD30::
 

传递给过滤器的 URI 始终是完整的 URI,如 /admin/main/developer/submit_form。不需要输入任何名称或查询参数。以下语句是以正则表达式表示的 URI 的几个示例:

名称可以包含字母字符、数字或下划线 (_),并且不能以数字开头。配置定义中使用的字符串文字不能用作名称。