CLDC 1.1.1

javax.microedition.io
Class SSLProtocolPermission

java.lang.Object
  extended byjava.security.Permission
      extended byjavax.microedition.io.GCFPermission
          extended byjavax.microedition.io.SSLProtocolPermission

public final class SSLProtocolPermission
extends GCFPermission

This class represents access rights to connections via the "ssl" protocol. A SSLProtocolPermission consists of a URI string but no actions list.

The URI string specifies a secure socket stream connection. It takes the following general form:

 ssl://{host}:{portspec}
 
The exact syntax for the SSLProtocolPermission URI is provided by this BNF. The value of the {host} field must be a symbolic hostname, a literal IPv4 address or a literal IPv6 address, as specified by RFC 3986. If the {host} string is a DNS name, an asterisk may appear in the leftmost position to indicate a match of 1 or more entire domain labels. Partial domain label matches are not permitted, therefore "*.sun.com" is valid, but "*sun.com" is not. An asterisk by itself matches all hosts.

The {portspec} string takes the following form:

 portnumber | -portnumber | portnumber-[portnumber] | "*"
 
A {portspec} specification of the form "N-" (where N is a port number) signifies all ports numbered N and above, while a specification of the form "-N" indicates all ports numbered N and below. A single asterisk in the place of the {portspec} field matches all ports. Therefore, the URI "ssl://*:*" matches secure connections to all hosts on all ports.

See Also:
Connector.open(java.lang.String), "javax.microedition.io.SecureConnection" in MIDP 3.0 Specification

Constructor Summary
SSLProtocolPermission(String uri)
          Creates a new SSLProtocolPermission with the specified URI as its name.
 
Method Summary
 boolean equals(Object obj)
          Checks two SSLProtocolPermission objects for equality.
 String getActions()
          Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions defined for SSLProtocolPermission.
 int hashCode()
          Returns the hash code value for this object.
 boolean implies(Permission p)
          Checks if this SSLProtocolPermission object "implies" the specified permission.
 PermissionCollection newPermissionCollection()
          Returns a new PermissionCollection for storing SSLProtocolPermission objects.
 
Methods inherited from class javax.microedition.io.GCFPermission
getProtocol, getURI
 
Methods inherited from class java.security.Permission
getName, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SSLProtocolPermission

public SSLProtocolPermission(String uri)
Creates a new SSLProtocolPermission with the specified URI as its name. The URI string must conform to the specification given above, and is normalized to facilitate subsequent comparisons.

Parameters:
uri - the URI string.
Throws:
IllegalArgumentException - if uri is malformed.
NullPointerException - if uri is null.
See Also:
Permission.getName()
Method Detail

implies

public boolean implies(Permission p)
Checks if this SSLProtocolPermission object "implies" the specified permission.

Because the {host} field of the permission URI may indicate an individual host by means of either a symbolic hostname or an IP address, a thorough evaluation of the implies relation between two SSLProtocolPermission objects requires the underlying platform to be able to transform symbolic hostnames into IP addresses (via address lookup) and vice-versa (via name lookup). Either service may be unavailable on a given platform. As a result, the comparison of URI strings from two permissions can only be best-effort. For each SSLProtocolPermission constructed with a URI that contains a {host} field, the implementation will attempt to determine both the fully-qualified domain name (the "canonical name") and the IP address(es) of the host. However, either value may be unknown.

To determine whether this object implies another permission, p, this method first ensures that all of the following are true (and returns false if any of them are not):

Then implies checks each of the following, in order, and for each returns true if the stated condition is true:

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.

equals

public boolean equals(Object obj)
Checks two SSLProtocolPermission objects for equality.

Specified by:
equals in class Permission
Parameters:
obj - the object we are testing for equality with this object.
Returns:
true if obj is a SSLProtocolPermission and has the same URI string as this SSLProtocolPermission object.

hashCode

public int hashCode()
Returns the hash code value for this object.

Specified by:
hashCode in class Permission
Returns:
a hash code value for this object.

getActions

public String getActions()
Returns the canonical string representation of the actions, which currently is the empty string "", since there are no actions defined for SSLProtocolPermission.

Specified by:
getActions in class Permission
Returns:
the empty string "".

newPermissionCollection

public PermissionCollection newPermissionCollection()
Returns a new PermissionCollection for storing SSLProtocolPermission objects.

SSLProtocolPermission 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 suitable for storing SSLProtocolPermission objects.

CLDC 1.1.1

Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.