This class models a specific set of permssions for connecting to a
host. There are two elements to this, the host/port combination and
the permission list.
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:
- 8080 - Represents port 8080 only
- 2000-3000 - Represents ports 2000 through 3000 inclusive
- -4000 - Represents ports 0 through 4000 inclusive
- 1024- - Represents ports 1024 through 65535 inclusive
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
Tests this object for equality against another. This will be true if
and only if the passed object is an instance of
SocketPermission
and both its hostname/port combination
and permissions string are identical.
Returns the list of permission actions in this object in canonical
order. The canonical order is "connect,listen,accept,resolve"
Returns a hash code value for this object. Overrides the
Permission.hashCode()
The host/port combination is specified as followed
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