# Default XACML Properties File
# Standard API Factories
#
xacml.dataTypeFactory=org.apache.openaz.xacml.std.StdDataTypeFactory
xacml.pdpEngineFactory=org.apache.openaz.xacmlatt.pdp.ATTPDPEngineFactory
xacml.pepEngineFactory=org.apache.openaz.xacml.std.pep.StdEngineFactory
xacml.pipFinderFactory=org.apache.openaz.xacml.std.pip.StdPIPFinderFactory
#xacml.traceEngineFactory=org.apache.openaz.xacml.std.trace.LoggingTraceEngineFactory

# If there is a standard set of PIPEngines:
# xacml.pip.engines=engine1,engine2,...,engineN
# engine1.classname=com.att.research.xacmlpip.OraclePIP
# engine1.prop1=foo
# engine1.prop2=bar
# ...
# engine2.classname=com.att.research.xacmlpip.ActiveDirectoryPIP
# ...
#xacml.pip.engines=ConformancePIPEngine
ConformancePIPEngine.classname=com.att.research.xacmlatt.pdp.test.conformance.ConformancePIPEngine
ConformancePIPEngine.file=testsets/conformance/xacml3.0-ct-v.0.4/PIP.txt

# OpenAZ PDP Implementation Factories
#
xacml.openaz.evaluationContextFactory=org.apache.openaz.xacml.pdp.std.StdEvaluationContextFactory
xacml.openaz.combiningAlgorithmFactory=org.apache.openaz.xacml.pdp.std.StdCombiningAlgorithmFactory
xacml.openaz.functionDefinitionFactory=org.apache.openaz.xacml.pdp.std.StdFunctionDefinitionFactory
xacml.openaz.policyFinderFactory=org.apache.openaz.xacml.pdp.std.StdPolicyFinderFactory

# If there is a standard policy for the engine:
# xacml.att.stdPolicyFinderFactory.rootPolicyFile=/etc/stdpolicyset.xml
