FileDocCategorySizeDatePackage
IdentityScope.javaAPI DocJava SE 5 API7190Fri Aug 26 14:57:14 BST 2005java.security

IdentityScope

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
Identity
see
Signer
see
Principal
see
Key
version
1.54 04/05/18
author
Benjamin Renaud
deprecated
This class is no longer used. Its functionality has been replaced by java.security.KeyStore, the java.security.cert package, and java.security.Principal.

Fields Summary
private static final long
serialVersionUID
private static IdentityScope
scope
Constructors Summary
protected IdentityScope()
This constructor is used for serialization only and should not be used by subclasses.

	this("restoring...");
    
public IdentityScope(String name)
Constructs a new identity scope with the specified name.

param
name the scope name.

	super(name);
    
public IdentityScope(String name, IdentityScope scope)
Constructs a new identity scope with the specified name and scope.

param
name the scope name.
param
scope the scope for the new identity scope.
exception
KeyManagementException if there is already an identity with the same name in the scope.

	super(name, scope);
    
Methods Summary
public abstract voidaddIdentity(java.security.Identity identity)
Adds an identity to this identity scope.

param
identity the identity to be added.
exception
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.

private static voidcheck(java.lang.String directive)

	SecurityManager security = System.getSecurityManager();
	if (security != null) {
	    security.checkSecurityAccess(directive);
	}
    
public abstract java.security.IdentitygetIdentity(java.security.PublicKey key)
Retrieves the identity with the specified public key.

param
key the public key for the identity to be returned.
return
the identity with the given key, or null if there are no identities in this scope with that key.

public abstract java.security.IdentitygetIdentity(java.lang.String name)
Returns the identity in this scope with the specified name (if any).

param
name the name of the identity to be retrieved.
return
the identity named name, or null if there are no identities named name in this scope.

public java.security.IdentitygetIdentity(java.security.Principal principal)
Retrieves the identity whose name is the same as that of the specified principal. (Note: Identity implements Principal.)

param
principal the principal corresponding to the identity to be retrieved.
return
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.

	return getIdentity(principal.getName());
    
public static java.security.IdentityScopegetSystemScope()
Returns the system's identity scope.

return
the system's identity scope.
see
#setSystemScope

	if (scope == null) {
	    initializeSystemScope();
	}
	return scope;
    
public abstract java.util.Enumerationidentities()
Returns an enumeration of all identities in this identity scope.

return
an enumeration of all identities in this identity scope.

private static voidinitializeSystemScope()


    // initialize the system scope
        

	String classname = (String) AccessController.doPrivileged(
						       new PrivilegedAction() {
	    public Object run() {
		return Security.getProperty("system.scope");
	    }
	});

	if (classname == null) {
	    return;

        } else {

	    try {
		Class.forName(classname);
	    } catch (ClassNotFoundException e) {
		//Security.error("unable to establish a system scope from " +
		//	       classname);
		e.printStackTrace();
	    }
	}
    
public abstract voidremoveIdentity(java.security.Identity identity)
Removes an identity from this identity scope.

param
identity the identity to be removed.
exception
KeyManagementException if the identity is missing, or another exception occurs.

protected static voidsetSystemScope(java.security.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.

param
scope the scope to set.
exception
SecurityException if a security manager exists and its checkSecurityAccess method doesn't allow setting the identity scope.
see
#getSystemScope
see
SecurityManager#checkSecurityAccess

	check("setSystemScope");
	IdentityScope.scope = scope;
    
public abstract intsize()
Returns the number of identities within this identity scope.

return
the number of identities within this identity scope.

public java.lang.StringtoString()
Returns a string representation of this identity scope, including its name, its scope name, and the number of identities in this identity scope.

return
a string representation of this identity scope.

	return super.toString() + "[" + size() + "]";