public final class URLPermission extends Permission
URL
该网址具有如下预期结构。
方案:/ /权威[路径]方案通常是HTTP或HTTPS,但该类不限。权威指定为:
权威= [登录] [循环]:portrange @portrange =端口| -端口|端口- [端口] | *寄主范围=([×] DnsName)| | IPv6 IPv4地址DnsName是一个标准的DNS主机名或域名,即一个或多个标签之间用“。”。IPv4地址是IPv4地址,IPv6标准文字地址是定义在 RFC 2732。字面的IPv6地址必须然而,被封闭在“[ ]”字符。DnsName规格可以冠以“×”。这意味着这个名字会匹配任何主机名的域名标签最右边这个名字一样。例如,“*。甲骨文。com”与“foo。酒吧。甲骨文。com”
portrange用于指定一个端口号,或有界或无界港口本许可适用范围。如果portrange缺失或无效,则默认端口号是假设如果方案被http
(默认为80)或https
(默认为443)。没有默认的假设为其他计划。通配符可以指定这意味着所有的端口。
用户信息是可选的。用户信息部分如果存在,是忽视创造一个urlpermission时,对这类定义的任何其他方法没有效果。
的路径组件包括一个序列的路径段,用“/”字符分隔。路径也可能是空的。路径是FilePermission
以类似的方式来指定的路径。有三种不同的方式作为下面的例子显示:
Example url | 描述 |
---|---|
http://www.oracle.com/a/b/c.html | A url which identifies a specific (single) resource |
http://www.oracle.com/a/b/* | The '*' character refers to all resources in the same "directory" - in other words all resources with the same number of path components, and which only differ in the final path component, represented by the '*'. |
http://www.oracle.com/a/b/- | The '-' character refers to all resources recursively below the preceding path (eg. http://www.oracle.com/a/b/c/d/e.html matches this example). |
“*”和“-”可能只在一条路径的最后一段中指定,必须是该段中的唯一字符。任何查询或片段组成的URL被忽略在构建urlpermissions。
作为一个特殊的情况下,形式的网址,“计划:*”被接受意味着任何给定的计划的网址。
的方案和URL字符串的权威组件是不考虑案件的处理。这意味着equals(Object)
,hashCode()
和implies(Permission)
是区分大小写的关于这些成分。如果权威包含文字的IP地址,然后地址是归一化的比较。路径组件是区分大小写的。
动作字符串
一个urlpermission动作字符串是一个级联的方法列表和请求标头列表。这些是允许的请求方法的列表和允许的请求的请求头(分别)。这两个列表是由一个“结”分隔的:“每个列表的字符和元素都是逗号分隔的”。一些例子:
“后,得到,删除”“:x-foo-request,x-bar-request”“后,得到:header1,header2”第一个实例的指定方法后,被删除,但没有请求报头。第二个示例指定一个请求方法和两个标题。第三个示例指定两个请求方法和两个标题。
如果请求头列表是空的,则不存在“结肠分离器”。在操作字符串中不允许有空格。到urlpermission构造函数提供的动作字符串不区分大小写和归一化转换方法的名称和标题名称的大写形式定义RFC2616(小写首字母每个单词首字母大写)。任何一个列表都可以包含一个“*”字符,它表示所有请求的方法或标题。
注。根据使用的上下文,一些请求的方法和头文件可能被允许在任何时间,和其他人可能不被允许在任何时间。例如,HTTP协议处理程序可能禁止某些标题等内容的长度被设置由应用程序代码,无论在力量的安全政策,允许它。
Constructor and Description |
---|
URLPermission(String url)
创建一个与给定的URL字符串和不受限制的方法和请求头通过调用两参数的构造函数为urlpermission如下:urlpermission(URL,“* *”)
|
URLPermission(String url, String actions)
创建一个新urlpermission URL字符串并允许给定的请求的方法和用户可设置的请求头。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object p)
如果返回true,这。getactions()。等于(P. getactions())和P的URL的URL等于这。
|
String |
getActions()
返回规范化的方法列表和请求头列表,在窗体中:
|
int |
hashCode()
返回一个hashCode从操作字符串和URL字符串的hashcode计算。
|
boolean |
implies(Permission p)
如果这个检查urlpermission意味着允许。
|
checkGuard, getName, newPermissionCollection, toString
public URLPermission(String url, String actions)
url
- URL字符串
actions
-动作字符串
IllegalArgumentException
-如果行动包含空格的URL无效或。
public URLPermission(String url)
url
- URL字符串
IllegalArgumentException
如果网址不在有效的
URI
结果
public String getActions()
“方法名称:头名称”
在方法名称是用逗号和头名称分离方法列表是以逗号分隔的列表允许头。返回的字符串中没有空格。如果头名称是空的,那么将不存在结肠分离器。
getActions
方法重写,继承类
Permission
public boolean implies(Permission p)
如何匹配路径的一些例子如下所示:
this's path | p's path | match |
---|---|---|
/a/b | /a/b | yes |
/a/b/* | /a/b/c | yes |
/a/b/* | /a/b/c/d | no |
/a/b/- | /a/b/c/d | yes |
/a/b/- | /a/b/c/d/e | yes |
/a/b/- | /a/b/c/* | yes |
/a/b/* | /a/b/c/- | no |
implies
方法重写,继承类
Permission
p
的权限检查。
public boolean equals(Object p)
equals
方法重写,继承类
Permission
p
对象--我们为这个对象相等性测试。
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
Permission
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.