public final class SocketPermission extends Permission implements Serializable
主机=(主机名| IPv4地址| ipv6reference)[:portrange ]portrange =端口| -端口|端口- [端口]主机被表示为一个域名,一个数字的IP地址,或为“localhost”(本机)。通配符“*”可以被包括在一次域名主机规格。如果是,它必须在最左边的位置,如“*。太阳。com”。
ipv6reference格式应遵循的规定RFC 2732: Format for Literal IPv6 Addresses in URLs:
ipv6reference =“[”“]”地址例如,你可以构建一个socketpermission实例如下:
它gethostaddress()字符串主机地址=;如果(InetAddress实例Inet6Address){SP =新socketpermission(“[”+主机地址+”]:“+端口,行动);其他{ }SP =新socketpermission(主机地址+“:”+端口,行动);}或
主机gethost() = URL;SP =新socketpermission(主机+“:”+端口,行动);
一个IPv6地址的文字full uncompressed form也是有效的。
港口或portrange是可选的。一个端口规格的形式“N -”,其中n是一个端口号,标志着所有的端口号n和以上,而一个规范的形式“N”表示所有的端口号和下面的端口号。特殊的端口值0
指整个短暂的端口范围。这是一个固定的端口的一个系统可以用来分配动态端口。实际范围可能是系统依赖的。
连接到主机的可能的方法是
接受连接听决定“听”的行动才是有意义的当使用“localhost”意味着绑定到指定的端口的能力。当任何其他行动都存在时,“解决”行动是暗示的。行动“解决”指的是主机名或IP命名服务查询。
操作字符串在处理前将字符串转换为小写。
作为创作的意义和socketpermissions例,注意如果以下权限:
P1 =新socketpermission(“海雀。eng.sun .com:7777“,”连接,接受”);授予一些代码,它允许代码连接到端口7777上的
puffin.eng.sun.com
,并接受在该端口连接。
同样,如果下面的权限:
P2 =新socketpermission(“本地:1024“,”接受,连接,听”);授予一些代码,它允许代码接收连接,连接,或听任何端口1024和65535之间的本地主机。
注:授权代码接收或连接到远程主机可能有危险,因为恶意代码可以更容易地传输和共享双方原本不可访问的数据在数据保密。
Permissions
,
SocketPermission
Constructor and Description |
---|
SocketPermission(String host, String action)
创建一个新的指定动作socketpermission对象。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
检查两个SocketPermission对象是否相等。
|
String |
getActions()
返回操作的规范字符串表示形式。
|
int |
hashCode()
返回此对象的哈希代码值。
|
boolean |
implies(Permission p)
检查此套接字权限对象“是否意味着”指定的权限。
|
PermissionCollection |
newPermissionCollection()
返回存储SocketPermission对象是否新PermissionCollection对象。
|
checkGuard, getName, toString
public SocketPermission(String host, String action)
指定本地机,使用“localhost”为主办。注意:一个空的主办字符串(“”)相当于“localhost”。
的行动参数包含一个以逗号分隔的授权给指定的主机行为列表(和端口(S))。可能的行动是“连接”,“听”,“接受”,“解决”,或任何组合。解决“任何其他三个指定时自动添加的解决”。
socketpermission实例化的例子如下:
NR =新socketpermission(“www.catalog .com”、“连接”);NR =新socketpermission(“www.sun .com:80”,“连接”);NR =新socketpermission(”*。太阳。com”、“连接”);NR =新socketpermission(“.edu”、“解决”);NR =新socketpermission(“204.160.241.0”、“连接”);NR =新socketpermission(“本地:1024-65535”、“听”);NR =新socketpermission(“204.160.241.0:1024-65535”、“连接”);
host
-计算机的主机名或IP地址,可以包括一个冒号后面的端口或端口范围。
action
-动作字符串。
public boolean implies(Permission p)
更具体地说,这种方法首先确保所有的以下都是真的(如果他们中的任何一个都不返回):
implies
检查下列,秩序,并为每个返回true,如果条件是正确的:
implies
返回false。
implies
方法重写,继承类
Permission
p
的权限检查。
public boolean equals(Object obj)
equals
方法重写,继承类
Permission
obj
-与此对象相等测试对象。
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
Permission
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String getActions()
getActions
方法重写,继承类
Permission
public PermissionCollection newPermissionCollection()
SocketPermission对象是否必须贮存方式,允许它们被插入到集合中的任何命令,但这也使得PermissionCollection implies
方法是一个有效的实现方式(一致)。
newPermissionCollection
方法重写,继承类
Permission
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.