public final class SocketPermission extends Permission implements Serializable
The host/port combination is specified as followed
hostname[:[-]port[-[port]]]
The hostname portion can be either a hostname or IP address. If it is a hostname, a wildcard is allowed in hostnames. This wildcard is a "*" and matches one or more characters. Only one "*" may appear in the host and it must be the leftmost character. For example, "*.urbanophile.com" matches all hosts in the "urbanophile.com" domain.
The port portion can be either a single value, or a range of values treated as inclusive. The first or the last port value in the range can be omitted in which case either the minimum or maximum legal value for a port (respectively) is used by default. Here are some examples:
The permission list is a comma separated list of individual permissions. These individual permissions are:
accept connect listen resolve
The "listen" permission is only relevant if the host is localhost. If any permission at all is specified, then resolve permission is implied to exist.
Here are a variety of examples of how to create SocketPermission's
SocketPermission("www.urbanophile.com", "connect"); Can connect to any port on www.urbanophile.com SocketPermission("www.urbanophile.com:80", "connect,accept"); Can connect to or accept connections from www.urbanophile.com on port 80 SocketPermission("localhost:1024-", "listen,accept,connect"); Can connect to, accept from, an listen on any local port number 1024 and up. SocketPermission("*.edu", "connect"); Can connect to any host in the edu domain SocketPermission("197.197.20.1", "accept"); Can accept connections from 197.197.20.1
This class also supports IPv6 addresses. These should be specified in either RFC 2732 format or in full uncompressed form.
Constructor and Description |
---|
SocketPermission(String hostport,
String actions)
Initializes a new instance of
SocketPermission with the
specified host/port combination and actions string. |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Tests this object for equality against another.
|
String |
getActions()
Returns the list of permission actions in this object in canonical
order.
|
int |
hashCode()
Returns a hash code value for this object.
|
boolean |
implies(Permission perm)
Returns true if the permission object passed it is implied by the
this permission.
|
PermissionCollection |
newPermissionCollection()
Returns a new
PermissionCollection object that can hold
SocketPermission 's. |
checkGuard, getName, toString
public SocketPermission(String hostport, String actions)
SocketPermission
with the
specified host/port combination and actions string.hostport
- The hostname/port number combinationactions
- The actions stringpublic boolean equals(Object obj)
SocketPermission
and both its hostname/port combination
and permissions string are identical.equals
in class Permission
obj
- The object to test against for equalitytrue
if object is equal to this object,
false
otherwise.Object.hashCode()
public int hashCode()
Permission.hashCode()
.hashCode
in class Permission
Object.equals(Object)
,
System.identityHashCode(Object)
public String getActions()
getActions
in class Permission
public PermissionCollection newPermissionCollection()
PermissionCollection
object that can hold
SocketPermission
's.newPermissionCollection
in class Permission
PermissionCollection
.public boolean implies(Permission perm)
SocketPermission
The argument's hostname will be a subset of this object's hostname if:
implies
in class Permission
perm
- The Permission
to check againsttrue
if the Permission
is implied by
this object, false
otherwise.