Top Description Fields Constructors Methods
jakarta.security.jacc

public abstract Class PolicyConfigurationFactory

extends Object
Class Inheritance
Imports
java.security.Permission

Abstract factory and finder class for obtaining the instance of the class that implements the PolicyConfigurationFactory of a provider. The factory will be used to instantiate PolicyConfiguration objects that will be used by the deployment tools of the container to create and manage policy contexts within the Policy Provider.

Usage: extend this class and push the implementation being wrapped to the constructor and use getWrapped to access the instance being wrapped.

Authors
Ron Monzillo, Gary Ellison, Harpreet Singh
See Also
Permission, PolicyConfiguration, PolicyContextException

Field Summary

Modifier and TypeField and Description
public static final String
private static volatile PolicyConfigurationFactory
private PolicyConfigurationFactory

Constructor Summary

AccessConstructor and Description
public
PolicyConfigurationFactory()

Default constructor for if no wrapping is needed

public
PolicyConfigurationFactory(PolicyConfigurationFactory
The implementation being wrapped.
wrapped
)

If this factory has been decorated, the implementation doing the decorating should push the implementation being wrapped to this constructor.

Method Summary

Modifier and TypeMethod and Description
public static PolicyConfigurationFactory

Returns:

the singleton instance of the provider specific PolicyConfigurationFactory implementation class.
get
()

This static method uses a system property to find and instantiate (via a public constructor) a provider specific factory implementation class.

public abstract PolicyConfiguration

Returns:

an Object that implements the PolicyConfiguration Interface matched to the Policy provider and corresponding to the identified policy context.
getPolicyConfiguration
(String
A String identifying the policy context whose PolicyConfiguration interface is to be returned. The value passed to this parameter must not be null.
contextID
,
boolean
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.
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.

public abstract PolicyConfiguration

Returns:

an Object that implements the PolicyConfiguration Interface matched to the Policy provider and corresponding to the identified policy context, or a null if such an Object is not present.
getPolicyConfiguration
(String
A String identifying the policy context whose PolicyConfiguration interface is to be returned. The value passed to this parameter must not be null.
contextID
)

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.

public abstract PolicyConfiguration

Returns:

an Object that implements the PolicyConfiguration Interface matched to the Policy provider and corresponding to the identified policy context, or a null if such an Object is not present.
getPolicyConfiguration
()

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.

public static PolicyConfigurationFactory

Returns:

the singleton instance of the provider specific PolicyConfigurationFactory implementation class.
getPolicyConfigurationFactory
()

This static method uses a system property to find and instantiate (via a public constructor) a provider specific factory implementation class.

public PolicyConfigurationFactory
getWrapped()

If this factory has been decorated, the implementation doing the decorating may override this method to provide access to the implementation being wrapped.

public abstract boolean

Returns:

true if the identified policy context exists within the provider and its state is "inService", false otherwise.
inService
(String
A string identifying a policy context
contextID
)

This method determines if the identified policy context exists with state "inService" in the Policy provider associated with the factory.

public static synchronized void
setPolicyConfigurationFactory(PolicyConfigurationFactory
The PolicyConfigurationFactory instance, which may be null.
policyConfigurationFactory
)

Set the system-wide PolicyFactory implementation.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

FACTORY_NAMEback to summary
public static final String FACTORY_NAME
policyConfigurationFactoryback to summary
private static volatile PolicyConfigurationFactory policyConfigurationFactory
wrappedback to summary
private PolicyConfigurationFactory wrapped

Constructor Detail

PolicyConfigurationFactoryback to summary
public PolicyConfigurationFactory()

Default constructor for if no wrapping is needed

PolicyConfigurationFactoryback to summary
public PolicyConfigurationFactory(PolicyConfigurationFactory wrapped)

If this factory has been decorated, the implementation doing the decorating should push the implementation being wrapped to this constructor. The getWrapped() will then return the implementation being wrapped.

Parameters
wrapped:PolicyConfigurationFactory

The implementation being wrapped.

Method Detail

getback to summary
public static PolicyConfigurationFactory get()

This static method uses a system property to find and instantiate (via a public constructor) a provider specific factory implementation class.

The name of the provider specific factory implementation class is obtained from the value of the system property,

jakarta.security.jacc.PolicyConfigurationFactory.provider.

This method is logically equivalent to PolicyConfigurationFactory#getPolicyConfigurationFactory() with the difference that any of the declared exceptions are captured into an IllegalStateException.

Returns:PolicyConfigurationFactory

the singleton instance of the provider specific PolicyConfigurationFactory implementation class.

Exceptions
IllegalStateException:
thrown at least when PolicyConfigurationFactory#getPolicyConfigurationFactory() throws a ClassNotFoundException or an PolicyContextException; in that case the IllegalStateException contains one of those exceptions as the cause.
getPolicyConfigurationback to summary
public abstract PolicyConfiguration getPolicyConfiguration(String contextID, boolean remove) throws PolicyContextException

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. The methods of the PolicyConfiguration interface are used to define the policy statements of the identified policy context.

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.

Parameters
contextID:String

A String identifying the policy context whose PolicyConfiguration interface is to be returned. The value passed to this parameter must not be null.

remove:boolean

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.

Returns:PolicyConfiguration

an Object that implements the PolicyConfiguration Interface matched to the Policy provider and corresponding to the identified policy context.

Exceptions
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.
getPolicyConfigurationback to summary
public abstract PolicyConfiguration getPolicyConfiguration(String contextID)

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. The methods of the PolicyConfiguration interface are used to define the policy statements of the identified policy context.

If at the time of the call, the identified policy context does not exist in the provider, then the policy context will not be created in the provider and a null will be returned. No state transition of any kind is allowed to occur, the PolicyConfiguration instance is to be returned as-is.

For a given value of the 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).

Parameters
contextID:String

A String identifying the policy context whose PolicyConfiguration interface is to be returned. The value passed to this parameter must not be null.

Returns:PolicyConfiguration

an Object that implements the PolicyConfiguration Interface matched to the Policy provider and corresponding to the identified policy context, or a null if such an Object is not present.

getPolicyConfigurationback to summary
public abstract PolicyConfiguration getPolicyConfiguration()

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. The policy context is identified by the value of the policy context identifier associated with the thread on which the accessor is called. The methods of the PolicyConfiguration interface are used to define the policy statements of the identified policy context.

If at the time of the call, the identified policy context does not exist in the provider, then the policy context will not be created in the provider and a null will be returned. No state transition of any kind is allowed to occur, the PolicyConfiguration instance is to be returned as-is.

For a given determined value of the 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).

This method should be logically identical to calling PolicyConfigurationFactory#getPolicyConfiguration(String) with as input the value returned from PolicyContext#getContextID(), unless that value is null. In that case a null should be returned.

Returns:PolicyConfiguration

an Object that implements the PolicyConfiguration Interface matched to the Policy provider and corresponding to the identified policy context, or a null if such an Object is not present.

getPolicyConfigurationFactoryback to summary
public static PolicyConfigurationFactory getPolicyConfigurationFactory() throws ClassNotFoundException, PolicyContextException

This static method uses a system property to find and instantiate (via a public constructor) a provider specific factory implementation class.

The name of the provider specific factory implementation class is obtained from the value of the system property,

jakarta.security.jacc.PolicyConfigurationFactory.provider.

Returns:PolicyConfigurationFactory

the singleton instance of the provider specific PolicyConfigurationFactory implementation class.

Exceptions
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 PolicyContextException
getWrappedback to summary
public PolicyConfigurationFactory getWrapped()

If this factory has been decorated, the implementation doing the decorating may override this method to provide access to the implementation being wrapped.

inServiceback to summary
public abstract boolean inService(String contextID) throws PolicyContextException

This method determines if the identified policy context exists with state "inService" in the Policy provider associated with the factory.

Parameters
contextID:String

A string identifying a policy context

Returns:boolean

true if the identified policy context exists within the provider and its state is "inService", false otherwise.

Exceptions
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.
setPolicyConfigurationFactoryback to summary
public static synchronized void setPolicyConfigurationFactory(PolicyConfigurationFactory policyConfigurationFactory)

Set the system-wide PolicyFactory implementation.

If an implementation was set previously, it will be replaced.

Parameters
policyConfigurationFactory:PolicyConfigurationFactory

The PolicyConfigurationFactory instance, which may be null.