java.net
Class SocketPermission
java.lang.Object
|
+--java.security.Permission
|
+--java.net.SocketPermission
- All Implemented Interfaces:
- Guard, Serializable
- public final class SocketPermission
- extends Permission
- implements Serializable
Untamed:
- See Also:
- Serialized Form
Field Summary
private static int
ACCEPT
Accept a connection from host:port
private static int
ALL
All actions
private static int
CONNECT
Connect to host:port
private static int
LISTEN
Listen on host:port
private static int
NONE
No actions
private static int
RESOLVE
Resolve DNS queries
Fields inherited from class java.security.Permission
Constructor Summary
Method Summary
boolean
equals(Object obj)
Suppressed: Checks two SocketPermission objects for equality.
String
getActions()
Enabled: Returns the canonical string representation of the actions.
private static String
getActions(int mask)
Returns the "canonical string representation" of the actions in the
specified mask.
(package private) void
getCanonName()
attempt to get the fully qualified domain name
(package private) void
getIP()
get IP addresses.
(package private) int
getMask()
Return the current action mask.
private static int
getMask(String action)
Convert an action string to an integer actions mask.
int
hashCode()
Suppressed: Returns the hash code value for this object.
boolean
implies(Permission p)
Enabled: Checks if this socket permission object "implies" the
specified permission.
private void
init(String host,
int mask)
Initialize the SocketPermission object.
Methods inherited from class java.security.Permission
Methods inherited from class java.lang.Object
Field Detail
CONNECT
private static final int CONNECT
- Connect to host:port
LISTEN
private static final int LISTEN
- Listen on host:port
ACCEPT
private static final int ACCEPT
- Accept a connection from host:port
RESOLVE
private static final int RESOLVE
- Resolve DNS queries
NONE
private static final int NONE
- No actions
ALL
private static final int ALL
- All actions
PORT_MIN
private static final int PORT_MIN
PORT_MAX
private static final int PORT_MAX
PRIV_PORT_MAX
private static final int PRIV_PORT_MAX
mask
private transient int mask
actions
private String actions
- the actions string.
hostname
private transient String hostname
cname
private transient String cname
addresses
private transient InetAddress[] addresses
wildcard
private transient boolean wildcard
init_with_ip
private transient boolean init_with_ip
invalid
private transient boolean invalid
portrange
private transient int[] portrange
trustProxy
private static boolean trustProxy
Constructor Detail
SocketPermission
public SocketPermission(String host,
String action)
- Enabled: Creates a new SocketPermission object with the specified actions.
The host is expressed as a DNS name, or as a numerical IP address.
Optionally, a port or a portrange may be supplied (separated
from the DNS name or IP address by a colon).
To specify the local machine, use "localhost" as the host.
Also note: An empty host String ("") is equivalent to "localhost".
The actions parameter contains a comma-separated list of the
actions granted for the specified host (and port(s)). Possible actions are
"connect", "listen", "accept", "resolve", or
any combination of those. "resolve" is automatically added
when any of the other three are specified.
Examples of SocketPermission instantiation are the following:
nr = new SocketPermission("www.catalog.com", "connect");
nr = new SocketPermission("www.sun.com:80", "connect");
nr = new SocketPermission("*.sun.com", "connect");
nr = new SocketPermission("*.edu", "resolve");
nr = new SocketPermission("204.160.241.0", "connect");
nr = new SocketPermission("localhost:1024-65535", "listen");
nr = new SocketPermission("204.160.241.0:1024-65535", "connect");
- Parameters:
host - the hostname or IPaddress of the computer, optionally
including a colon followed by a port or port range.action - the action string.
SocketPermission
SocketPermission(String host,
int mask)
Method Detail
getHost
private static String getHost(String host)
-
-
parsePort
private int[] parsePort(String port)
throws Exception
-
Exception
init
private void init(String host,
int mask)
- Initialize the SocketPermission object. We don't do any DNS lookups
as this point, instead we hold off until the implies method is
called.
-
-
getMask
private static int getMask(String action)
- Convert an action string to an integer actions mask.
-
- Parameters:
action - the action string
- Returns:
- the action mask
getCanonName
void getCanonName()
throws UnknownHostException
- attempt to get the fully qualified domain name
-
UnknownHostException
getIP
void getIP()
throws UnknownHostException
- get IP addresses. Sets invalid to true if we can't get them.
-
UnknownHostException
implies
public boolean implies(Permission p)
- Enabled: Checks if this socket permission object "implies" the
specified permission.
More specifically, this method first ensures that all of the following
are true (and returns false if any of them are not):
- p is an instanceof SocketPermission,
- p's actions are a proper subset of this
object's actions, and
- p's port range is included in this port range.
Then implies checks each of the following, in order,
and for each returns true if the stated condition is true:
- If this object was initialized with a single IP address and one of p's
IP addresses is equal to this object's IP address.
- If this object is a wildcard domain (such as *.sun.com), and
p's canonical name (the name without any preceding *)
ends with this object's canonical host name. For example, *.sun.com
implies *.eng.sun.com..
- If this object was not initialized with a single IP address, and one of this
object's IP addresses equals one of p's IP addresses.
- If this canonical name equals p's canonical name.
If none of the above are true, implies returns false.
- Specified by:
implies in class Permission
- Parameters:
p - the permission to check against.
- Returns:
- true if the specified permission is implied by this object,
false if not.
impliesIgnoreMask
boolean impliesIgnoreMask(SocketPermission that)
- Checks if the incoming Permission's action are a proper subset of
the this object's actions.
Check, in the following order:
- Checks that "p" is an instanceof a SocketPermission
- Checks that "p"'s actions are a proper subset of the
current object's actions.
- Checks that "p"'s port range is included in this port range
- If this object was initialized with an IP address, checks that
one of "p"'s IP addresses is equal to this object's IP address.
- If either object is a wildcard domain (i.e., "*.sun.com"),
attempt to match based on the wildcard.
- If this object was not initialized with an IP address, attempt
to find a match based on the IP addresses in both objects.
- Attempt to match on the canonical hostnames of both objects.
-
- Returns:
- true if "permission" is a proper subset of the current object,
false if not.
inProxyWeTrust
private boolean inProxyWeTrust(SocketPermission that)
-
-
equals
public boolean equals(Object obj)
- Suppressed: Checks two SocketPermission objects for equality.
- Specified by:
equals in class Permission
- Parameters:
obj - the object to test for equality with this object.
- Returns:
- true if obj is a SocketPermission, and has the same hostname,
port range, and
actions as this SocketPermission object.
hashCode
public int hashCode()
- Suppressed: Returns the hash code value for this object.
- Specified by:
hashCode in class Permission
- Returns:
- a hash code value for this object.
getMask
int getMask()
- Return the current action mask.
-
- Returns:
- the actions mask.
getActions
private static String getActions(int mask)
- Returns the "canonical string representation" of the actions in the
specified mask.
Always returns present actions in the following order:
connect, listen, accept, resolve.
-
- Parameters:
mask - a specific integer action mask to translate into a string
- Returns:
- the canonical string representation of the actions
getActions
public String getActions()
- Enabled: Returns the canonical string representation of the actions.
Always returns present actions in the following order:
connect, listen, accept, resolve.
- Specified by:
getActions in class Permission
- Returns:
- the canonical string representation of the actions.
newPermissionCollection
public PermissionCollection newPermissionCollection()
- Enabled: Returns a new PermissionCollection object for storing SocketPermission
objects.
SocketPermission objects must be stored in a manner that allows them
to be inserted into the collection in any order, but that also enables the
PermissionCollection implies
method to be implemented in an efficient (and consistent) manner.
- Overrides:
newPermissionCollection in class Permission
- Returns:
- a new PermissionCollection object suitable for storing SocketPermissions.
writeObject
private void writeObject(ObjectOutputStream s)
throws IOException
- WriteObject is called to save the state of the SocketPermission
to a stream. The actions are serialized, and the superclass
takes care of the name.
-
IOException
readObject
private void readObject(ObjectInputStream s)
throws IOException,
ClassNotFoundException
- readObject is called to restore the state of the SocketPermission from
a stream.
-
IOException
ClassNotFoundException