Package org.dogtagpki.legacy.core.policy
Class GenericPolicyProcessor
- java.lang.Object
-
- org.dogtagpki.legacy.core.policy.GenericPolicyProcessor
-
- All Implemented Interfaces:
IPolicy,IPolicyProcessor
public class GenericPolicyProcessor extends java.lang.Object implements IPolicyProcessor
This is a Generic policy processor. The three main functions of this class are: 1. To initialize policies by reading policy configuration from the config file, and maintain 5 sets of policies - viz Enrollment, Renewal, Revocation and KeyRecovery and KeyArchival. 2. To apply the configured policies on the given request. 3. To enable policy listing/configuration via MCC console. Since the policy processor also implements the IPolicy interface the processor itself presents itself as one big policy to the request processor.- Version:
- $Revision$, $Date$
- Author:
- kanda
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String[]DEF_POLICIESstatic java.util.Hashtable<java.lang.String,IExpression>DEF_UNDELETABLE_POLICIESstatic org.slf4j.Loggerloggerprotected IAuthoritymAuthorityprotected IConfigStoremConfigprotected EngineConfigmGlobalStore-
Fields inherited from interface org.dogtagpki.legacy.policy.IPolicyProcessor
PROP_CLASS, PROP_DEF_POLICIES, PROP_ENABLE, PROP_IMPL, PROP_IMPL_NAME, PROP_ORDER, PROP_PREDICATE, PROP_RULE, PROP_UNDELETABLE_POLICIES
-
-
Constructor Summary
Constructors Constructor Description GenericPolicyProcessor()GenericPolicyProcessor(boolean initSystemPolicies)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPolicyImpl(java.lang.String id, java.lang.String classPath)Adds a policy implementation identified by an impl id.voidaddPolicyInstance(java.lang.String id, java.util.Hashtable<java.lang.String,java.lang.String> ht)Adds a policy instancePolicyResultapply(IRequest request)Apply policies on the given request.voidchangePolicyInstanceOrdering(java.lang.String policyOrderStr)Modifies policy ordering.voiddeletePolicyImpl(java.lang.String id)Deletes a policy implementation identified by an impl id.voiddeletePolicyInstance(java.lang.String id)Deletes a policy instance identified by an instance id.ISubsystemgetAuthority()IConfigStoregetConfigStore()Returns the configuration store.java.lang.StringgetId()IPolicyRulegetPolicyImpl(java.lang.String id)Returns an implementation identified by a given id.java.util.Vector<java.lang.String>getPolicyImplConfig(java.lang.String id)Returns configuration for an implmentation.java.util.Enumeration<IPolicyRule>getPolicyImpls()Returns the rule implementations registered with this processor.java.util.Enumeration<java.lang.String>getPolicyImplsInfo()Returns information on Policy impls.IPolicyRulegetPolicyInstance(java.lang.String id)Returns instance configuration for a given instance id.java.util.Vector<java.lang.String>getPolicyInstanceConfig(java.lang.String id)Returns instance configuration for a given instance id.java.util.Enumeration<IPolicyRule>getPolicyInstances()Returns policy instances registered with this processor.java.util.Enumeration<java.lang.String>getPolicyInstancesInfo()Returns information on Policy instances.java.lang.StringgetPolicySubstoreId()Returns the policy substore id.voidinit(IAuthority owner, IConfigStore config)Initializes the PolicyProcessorbooleanisProfileRequest(IRequest request)voidmodifyPolicyInstance(java.lang.String id, java.util.Hashtable<java.lang.String,java.lang.String> ht)Modifies a policy instancevoidprintPolicies()voidsetId(java.lang.String id)voidshutdown()Shuts down this subsystem.voidstartup()
-
-
-
Field Detail
-
logger
public static org.slf4j.Logger logger
-
mConfig
protected IConfigStore mConfig
-
mGlobalStore
protected EngineConfig mGlobalStore
-
mAuthority
protected IAuthority mAuthority
-
DEF_POLICIES
public static final java.lang.String[] DEF_POLICIES
-
DEF_UNDELETABLE_POLICIES
public static final java.util.Hashtable<java.lang.String,IExpression> DEF_UNDELETABLE_POLICIES
-
-
Method Detail
-
setId
public void setId(java.lang.String id) throws EBaseException- Throws:
EBaseException
-
getId
public java.lang.String getId()
-
startup
public void startup() throws EBaseException- Throws:
EBaseException
-
shutdown
public void shutdown()
Shuts down this subsystem.
-
getAuthority
public ISubsystem getAuthority()
- Specified by:
getAuthorityin interfaceIPolicyProcessor
-
getConfigStore
public IConfigStore getConfigStore()
Returns the configuration store.- Returns:
- configuration store
-
init
public void init(IAuthority owner, IConfigStore config) throws EBaseException
Initializes the PolicyProcessor- Parameters:
owner- owner of this subsystemconfig- configuration of this subsystem- Throws:
EBaseException- failed to initialize this Subsystem.
-
isProfileRequest
public boolean isProfileRequest(IRequest request)
-
apply
public PolicyResult apply(IRequest request)
Apply policies on the given request.
-
printPolicies
public void printPolicies()
-
getPolicySubstoreId
public java.lang.String getPolicySubstoreId()
Description copied from interface:IPolicyProcessorReturns the policy substore id.- Specified by:
getPolicySubstoreIdin interfaceIPolicyProcessor- Returns:
- storeID The policy store id used by this processor.
-
getPolicyImpls
public java.util.Enumeration<IPolicyRule> getPolicyImpls()
Description copied from interface:IPolicyProcessorReturns the rule implementations registered with this processor.- Specified by:
getPolicyImplsin interfaceIPolicyProcessor- Returns:
- An Enumeration of uninitialized IPolicyRule objects.
-
getPolicyImplsInfo
public java.util.Enumeration<java.lang.String> getPolicyImplsInfo()
Description copied from interface:IPolicyProcessorReturns information on Policy impls.- Specified by:
getPolicyImplsInfoin interfaceIPolicyProcessor- Returns:
- An enumeration of strings describing the information about policy implementations. Currently only the the implementation id is expected.
-
getPolicyImpl
public IPolicyRule getPolicyImpl(java.lang.String id)
Description copied from interface:IPolicyProcessorReturns an implementation identified by a given id.- Specified by:
getPolicyImplin interfaceIPolicyProcessor- Parameters:
id- The implementation id.- Returns:
- The uninitialized instance of the policy rule.
-
getPolicyImplConfig
public java.util.Vector<java.lang.String> getPolicyImplConfig(java.lang.String id)
Description copied from interface:IPolicyProcessorReturns configuration for an implmentation.- Specified by:
getPolicyImplConfigin interfaceIPolicyProcessor- Parameters:
id- The implementation id.- Returns:
- A vector of name/value pairs in the form of name=value.
-
deletePolicyImpl
public void deletePolicyImpl(java.lang.String id) throws EBaseExceptionDescription copied from interface:IPolicyProcessorDeletes a policy implementation identified by an impl id.- Specified by:
deletePolicyImplin interfaceIPolicyProcessor- Parameters:
id- The impl id of the policy to be deleted. There shouldn't be any active instance for this implementation.- Throws:
EBaseException- is thrown if an error occurs in deletion.
-
addPolicyImpl
public void addPolicyImpl(java.lang.String id, java.lang.String classPath) throws EBaseExceptionDescription copied from interface:IPolicyProcessorAdds a policy implementation identified by an impl id.- Specified by:
addPolicyImplin interfaceIPolicyProcessor- Parameters:
id- The impl id of the policy to be added. The id should be unique.classPath- The fully qualified path for the implementation.- Throws:
EBaseException- is thrown if an error occurs in addition.
-
getPolicyInstances
public java.util.Enumeration<IPolicyRule> getPolicyInstances()
Description copied from interface:IPolicyProcessorReturns policy instances registered with this processor.- Specified by:
getPolicyInstancesin interfaceIPolicyProcessor- Returns:
- An Enumeration of policy instances.
-
getPolicyInstancesInfo
public java.util.Enumeration<java.lang.String> getPolicyInstancesInfo()
Description copied from interface:IPolicyProcessorReturns information on Policy instances.- Specified by:
getPolicyInstancesInfoin interfaceIPolicyProcessor- Returns:
- An Enumeration of Strings describing the information about policy rule instances.
-
getPolicyInstance
public IPolicyRule getPolicyInstance(java.lang.String id)
Description copied from interface:IPolicyProcessorReturns instance configuration for a given instance id.- Specified by:
getPolicyInstancein interfaceIPolicyProcessor- Parameters:
id- The rule id.- Returns:
- the policy instance identified by the id.
-
getPolicyInstanceConfig
public java.util.Vector<java.lang.String> getPolicyInstanceConfig(java.lang.String id)
Description copied from interface:IPolicyProcessorReturns instance configuration for a given instance id.- Specified by:
getPolicyInstanceConfigin interfaceIPolicyProcessor- Parameters:
id- The rule id.- Returns:
- A vector of name/value pairs in the form of name=value.
-
deletePolicyInstance
public void deletePolicyInstance(java.lang.String id) throws EBaseExceptionDescription copied from interface:IPolicyProcessorDeletes a policy instance identified by an instance id.- Specified by:
deletePolicyInstancein interfaceIPolicyProcessor- Parameters:
id- The instance id of the policy to be deleted.- Throws:
EBaseException- is thrown if an error occurs in deletion.
-
addPolicyInstance
public void addPolicyInstance(java.lang.String id, java.util.Hashtable<java.lang.String,java.lang.String> ht) throws EBaseExceptionDescription copied from interface:IPolicyProcessorAdds a policy instance- Specified by:
addPolicyInstancein interfaceIPolicyProcessor- Parameters:
id- The impl id of the policy to be added. The id should be unique.ht- a Hashtable of config params.- Throws:
EBaseException- is thrown if an error occurs in addition.
-
modifyPolicyInstance
public void modifyPolicyInstance(java.lang.String id, java.util.Hashtable<java.lang.String,java.lang.String> ht) throws EBaseExceptionDescription copied from interface:IPolicyProcessorModifies a policy instance- Specified by:
modifyPolicyInstancein interfaceIPolicyProcessor- Parameters:
id- The impl id of the policy to be modified. The policy instance with this id should be present.ht- a Hashtable of config params.- Throws:
EBaseException- is thrown if an error occurs in addition.
-
changePolicyInstanceOrdering
public void changePolicyInstanceOrdering(java.lang.String policyOrderStr) throws EBaseExceptionDescription copied from interface:IPolicyProcessorModifies policy ordering.- Specified by:
changePolicyInstanceOrderingin interfaceIPolicyProcessor- Parameters:
policyOrderStr- The comma separated list of instance ids.- Throws:
EBaseException
-
-