@Service @ContractsProvided(value={PolicyConfigurationFactoryImpl.class,javax.security.jacc.PolicyConfigurationFactory.class}) public class PolicyConfigurationFactoryImpl extends javax.security.jacc.PolicyConfigurationFactory implements JaccConfigurationFactory
Constructor and Description |
---|
PolicyConfigurationFactoryImpl() |
Modifier and Type | Method and Description |
---|---|
void |
addContextIdMapping(String applicationContextId,
String policyContextId)
Makes the mapping from the Servlet based context ID to the JACC based context ID
known to the factory.
|
protected void |
checkSetPolicyPermission() |
ContextProvider |
getContextProviderByPolicyContextId(String contextId)
Gets the context JACC provider that was set by registerContextProvider.
|
javax.security.jacc.PolicyConfiguration |
getPolicyConfiguration(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.
|
protected PolicyConfigurationImpl |
getPolicyConfigurationImpl(String contextId) |
protected PolicyConfigurationImpl |
getPolicyConfigurationImpl(String contextId,
boolean open,
boolean remove) |
protected List<PolicyConfigurationImpl> |
getPolicyConfigurationImpls() |
boolean |
inService(String contextId)
This method determines if the identified policy context exists with state "inService" in the Policy provider
associated with the factory.
|
void |
registerContextProvider(String applicationContextId,
javax.security.jacc.PolicyConfigurationFactory factory,
Policy policy)
Registers a context (local) Jacc provider, consisting of its two elements.
|
boolean |
removeContextIdMappingByPolicyContextId(String policyContextId)
Removes the mapping from the Servlet based context ID to the JACC based context ID
known to the factory.
|
ContextProvider |
removeContextProviderByPolicyContextId(String policyContextId)
Removes any context JACC provider that was set by registerContextProvider.
|
protected PolicyConfigurationImpl |
removePolicyConfigurationImpl(String contextID) |
getPolicyConfigurationFactory
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getJaccConfigurationFactory
public void registerContextProvider(String applicationContextId, javax.security.jacc.PolicyConfigurationFactory factory, Policy policy)
JaccConfigurationFactory
See the JACC spec for the requirements and behavior of the PolicyConfigurationFactory
and the Policy
.
Note that this uses an applicationContextId
for registration. This is a Servlet
based ID to identify the current application. It's defined as follows:
private String getAppContextId(ServletContext servletContext) {
return servletContext.getVirtualServerName() + " " + servletContext.getContextPath();
}
registerContextProvider
in interface JaccConfigurationFactory
applicationContextId
- an ID identifying the application for which the Jacc provider is installedfactory
- the PolicyConfigurationFactory element of the Jacc Providerpolicy
- the Policy element of the Jacc Providerpublic void addContextIdMapping(String applicationContextId, String policyContextId)
JaccConfigurationFactory
addContextIdMapping
in interface JaccConfigurationFactory
applicationContextId
- Servlet based identifier for an application contextpolicyContextId
- JACC based identifier for an application contextpublic boolean removeContextIdMappingByPolicyContextId(String policyContextId)
JaccConfigurationFactory
removeContextIdMappingByPolicyContextId
in interface JaccConfigurationFactory
policyContextId
- JACC based identifier for an application contextpublic ContextProvider getContextProviderByPolicyContextId(String contextId)
JaccConfigurationFactory
Note that this uses the policyContextId
, which is a JACC native ID instead of the
Servlet based application ID that's used for registering. The mapping from the Servlet based ID to
the JACC based ID is made known to the factory by the addContextIdMapping
method.
getContextProviderByPolicyContextId
in interface JaccConfigurationFactory
contextId
- the identifier of the JACC policy contextpublic ContextProvider removeContextProviderByPolicyContextId(String policyContextId)
JaccConfigurationFactory
Note that this uses the policyContextId
, which is a JACC native ID instead of the
Servlet based application ID that's used for registering. The mapping from the Servlet based ID to
the JACC based ID is made known to the factory by the addContextIdMapping
method.
removeContextProviderByPolicyContextId
in interface JaccConfigurationFactory
policyContextId
- the identifier of the JACC policy contextpublic javax.security.jacc.PolicyConfiguration getPolicyConfiguration(String contextId, boolean remove) throws javax.security.jacc.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.
getPolicyConfiguration
in interface JaccConfigurationFactory
getPolicyConfiguration
in class javax.security.jacc.PolicyConfigurationFactory
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 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 of an existing policy context will be removed. If the value is false, they will not be removed.SecurityException
- when called by an AccessControlContext that has not been granted the "setPolicy"
SecurityPermission.javax.security.jacc.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.PolicyConfigurationFactory.getPolicyConfiguration(String, boolean)
public boolean inService(String contextId) throws javax.security.jacc.PolicyContextException
inService
in interface JaccConfigurationFactory
inService
in class javax.security.jacc.PolicyConfigurationFactory
contextID
- A string identifying a policy contextSecurityException
- when called by an AccessControlContext that has not been granted the "setPolicy"
SecurityPermission.javax.security.jacc.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.PolicyConfigurationFactory.inService(String)
protected PolicyConfigurationImpl getPolicyConfigurationImpl(String contextId)
protected PolicyConfigurationImpl getPolicyConfigurationImpl(String contextId, boolean open, boolean remove)
protected List<PolicyConfigurationImpl> getPolicyConfigurationImpls()
protected PolicyConfigurationImpl removePolicyConfigurationImpl(String contextID)
protected void checkSetPolicyPermission()
Copyright © 2018. All rights reserved.