public abstract class PolicyConfigurationFactory
extends java.lang.Object
Implementation classes must have a public no argument constructor that may be used to create an operational instance of the factory implementation class.
Permission
,
PolicyConfiguration
,
PolicyContextException
Constructor and Description |
---|
PolicyConfigurationFactory() |
Modifier and Type | Method and Description |
---|---|
abstract PolicyConfiguration |
getPolicyConfiguration(java.lang.String contextID,
boolean remove)
This method is used to obtain an instance of the provider specific class that implements the PolicyConfiguration
interface that corresponds to the identified policy context within the provider.
|
static PolicyConfigurationFactory |
getPolicyConfigurationFactory()
This static method uses a system property to find and instantiate (via a public constructor) a provider specific
factory implementation class.
|
abstract boolean |
inService(java.lang.String contextID)
This method determines if the identified policy context exists with state "inService" in the Policy provider
associated with the factory.
|
public static PolicyConfigurationFactory getPolicyConfigurationFactory() throws java.lang.ClassNotFoundException, PolicyContextException
The name of the provider specific factory implementation class is obtained from the value of the system property,
javax.security.jacc.PolicyConfigurationFactory.provider.
java.lang.SecurityException
- when called by an AccessControlContext that has not been granted the "setPolicy"
SecurityPermission.java.lang.ClassNotFoundException
- when the class named by the system property could not be found including
because the value of the system property has not be set.PolicyContextException
- if the implementation throws a checked exception that has not been
accounted for by the getPolicyConfigurationFactory method signature. The exception thrown by the implementation class
will be encapsulated (during construction) in the thrown PolicyContextExceptionpublic abstract PolicyConfiguration getPolicyConfiguration(java.lang.String contextID, boolean remove) throws PolicyContextException
If at the time of the call, the identified policy context does not exist in the provider, then the policy context will be created in the provider and the Object that implements the context's PolicyConfiguration Interface will be returned. If the state of the identified context is "deleted" or "inService" it will be transitioned to the "open" state as a result of the call. The states in the lifecycle of a policy context are defined by the PolicyConfiguration interface.
For a given value of policy context identifier, this method must always return the same instance of PolicyConfiguration and there must be at most one actual instance of a PolicyConfiguration with a given policy context identifier (during a process context).
To preserve the invariant that there be at most one PolicyConfiguration object for a given policy context, it may be necessary for this method to be thread safe.
contextID
- A String identifying the policy context whose PolicyConfiguration interface is to be returned. The
value passed to this parameter must not be null.remove
- A boolean value that establishes whether or not the policy statements and linkages of an existing
policy context are to be removed before its PolicyConfiguration object is returned. If the value passed to this
parameter is true, the policy statements and linkages of an existing policy context will be removed. If the value is
false, they will not be removed.java.lang.SecurityException
- when called by an AccessControlContext that has not been granted the "setPolicy"
SecurityPermission.PolicyContextException
- if the implementation throws a checked exception that has not been
accounted for by the getPolicyConfiguration method signature. The exception thrown by the implementation class will
be encapsulated (during construction) in the thrown PolicyContextException.public abstract boolean inService(java.lang.String contextID) throws PolicyContextException
contextID
- A string identifying a policy contextjava.lang.SecurityException
- when called by an AccessControlContext that has not been granted the "setPolicy"
SecurityPermission.PolicyContextException
- if the implementation throws a checked exception that has not been
accounted for by the inService method signature. The exception thrown by the implementation class will be
encapsulated (during construction) in the thrown PolicyContextException.