java.security

Class IdentityScope

Implemented Interfaces:
Principal, Serializable

public abstract class IdentityScope
extends Identity

This class represents a scope for identities. It is an Identity itself, and therefore has a name and can have a scope. It can also optionally have a public key and associated certificates.

An IdentityScope can contain Identity objects of all kinds, including Signers. All types of Identity objects can be retrieved, added, and removed using the same methods. Note that it is possible, and in fact expected, that different types of identity scopes will apply different policies for their various operations on the various types of Identities.

There is a one-to-one mapping between keys and identities, and there can only be one copy of one key per scope. For example, suppose Acme Software, Inc is a software publisher known to a user. Suppose it is an Identity, that is, it has a public key, and a set of associated certificates. It is named in the scope using the name "Acme Software". No other named Identity in the scope has the same public key. Of course, none has the same name as well.

See Also:
Identity, Signer, Principal, Key, Serialized Form

Constructor Summary

IdentityScope()
This constructor is used for serialization only and should not be used by subclasses.
IdentityScope(String name)
Constructs a new identity scope with the specified name.
IdentityScope(String name, IdentityScope scope)
Constructs a new identity scope with the specified name and scope.

Method Summary

abstract void
addIdentity(Identity identity)
Adds an identity to this identity scope.
abstract Identity
getIdentity(String name)
Returns the identity in this scope with the specified name (if any).
Identity
getIdentity(Principal principal)
Retrieves the identity whose name is the same as that of the specified principal.
abstract Identity
getIdentity(PublicKey key)
Retrieves the identity with the specified public key.
static IdentityScope
getSystemScope()
Returns the system's identity scope.
abstract Enumeration
identities()
Returns an enumeration of all identities in this identity scope.
abstract void
removeIdentity(Identity identity)
Removes an identity from this identity scope.
protected static void
setSystemScope(IdentityScope scope)
Sets the system's identity scope.
abstract int
size()
Returns the number of identities within this identity scope.
String
toString()
Returns a string representation of this identity scope, including its name, its scope name, and the number of identities in this identity scope.

Methods inherited from class java.security.Identity

addCertificate, certificates, equals, getInfo, getName, getPublicKey, getScope, hashCode, identityEquals, removeCertificate, setInfo, setPublicKey, toString, toString

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

IdentityScope

protected IdentityScope()
This constructor is used for serialization only and should not be used by subclasses.

IdentityScope

public IdentityScope(String name)
Constructs a new identity scope with the specified name.
Parameters:
name - the scope name.

IdentityScope

public IdentityScope(String name,
                     IdentityScope scope)
            throws KeyManagementException
Constructs a new identity scope with the specified name and scope.
Parameters:
name - the scope name.
scope - the scope for the new identity scope.
Throws:
KeyManagementException - if there is already an identity with the same name in the scope.

Method Details

addIdentity

public abstract void addIdentity(Identity identity)
            throws KeyManagementException
Adds an identity to this identity scope.
Parameters:
identity - the identity to be added.
Throws:
KeyManagementException - if the identity is not valid, a name conflict occurs, another identity has the same public key as the identity being added, or another exception occurs.

getIdentity

public abstract Identity getIdentity(String name)
Returns the identity in this scope with the specified name (if any).
Parameters:
name - the name of the identity to be retrieved.
Returns:
the identity named name, or null if there are no identities named name in this scope.

getIdentity

public Identity getIdentity(Principal principal)
Retrieves the identity whose name is the same as that of the specified principal. (Note: Identity implements Principal.)
Parameters:
principal - the principal corresponding to the identity to be retrieved.
Returns:
the identity whose name is the same as that of the principal, or null if there are no identities of the same name in this scope.

getIdentity

public abstract Identity getIdentity(PublicKey key)
Retrieves the identity with the specified public key.
Parameters:
key - the public key for the identity to be returned.
Returns:
the identity with the given key, or null if there are no identities in this scope with that key.

getSystemScope

public static IdentityScope getSystemScope()
Returns the system's identity scope.
Returns:
the system's identity scope.

identities

public abstract Enumeration identities()
Returns an enumeration of all identities in this identity scope.
Returns:
an enumeration of all identities in this identity scope.

removeIdentity

public abstract void removeIdentity(Identity identity)
            throws KeyManagementException
Removes an identity from this identity scope.
Parameters:
identity - the identity to be removed.
Throws:
KeyManagementException - if the identity is missing, or another exception occurs.

setSystemScope

protected static void setSystemScope(IdentityScope scope)
Sets the system's identity scope.

First, if there is a security manager, its checkSecurityAccess() method is called with "setSystemScope" as its argument to see if it's ok to set the identity scope.

Parameters:
scope - the scope to set.
Throws:
SecurityException - if a security manager exists and its checkSecurityAccess() method doesn't allow setting the identity scope.

size

public abstract int size()
Returns the number of identities within this identity scope.
Returns:
the number of identities within this identity scope.

toString

public String toString()
Returns a string representation of this identity scope, including its name, its scope name, and the number of identities in this identity scope.
Specified by:
toString in interface Principal
Overrides:
toString in interface Identity
Returns:
a string representation of this identity scope.

IdentityScope.java --- IdentityScope Class Copyright (C) 1999, 2003, Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.