#
#
# This is test set that tests configurable SQL PIP engine. It uses sample data from MySQL world database
#
# http://dev.mysql.com/doc/world-setup/en/index.html
#
# The Policy was created using the PAP Admin Tool.
#
#

#
# 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
#
# 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

#
# NOTE: If you are testing against a RESTful PDP, then the PDP must be configured with the
# policies and PIP configuration as defined below. Otherwise, this is the configuration that
# the embedded PDP uses.
#

# Policies to load
#
xacml.rootPolicies=sql
sql.file=testsets/pip/configurable-sql/SQL-World-Languages-v1.xml

# PIP Engine Definition
#
xacml.pip.engines=sql1

sql1.classname=org.apache.openaz.xacml.std.pip.engines.jdbc.JDBCEngine
sql1.name=World
sql1.description=World Database from MySQL website. Copyright Statistics Finland, http://www.stat.fi/worldinfigures.
# This will be the default issuer for the resolvers. NOTE: Issuer only used for attributes provided by the engine.
sql1.issuer=org.apache.openaz:xacml:test:sql
#
# This is the configuration for JDBC. You will have to setup the database and run the data\world*.sql script to
# create the tables and load the data. 
#
sql1.type=jdbc
sql1.jdbc.driver=org.postgresql.Driver
sql1.jdbc.url=jdbc:postgresql://localhost:5432/world
sql1.jdbc.conn.user=sa
sql1.jdbc.conn.password=
#
# This is the configuration for JNDI datasource.
#
#sql1.type=jndi
#sql1.datasource=jdbc/xacml

sql1.resolvers=langer

sql1.resolver.langer.classname=org.apache.openaz.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver
sql1.resolver.langer.name=Language
sql1.resolver.langer.description=This returns the language for a city.
sql1.resolver.langer.select=SELECT language FROM city INNER JOIN countrylanguage ON city.countrycode = countrylanguage.countrycode WHERE name=?
sql1.resolver.langer.fields=language
sql1.resolver.langer.field.language.id=org.apache.openaz:xacml:test:sql:resource:city:language
sql1.resolver.langer.field.language.datatype=http://www.w3.org/2001/XMLSchema#string
sql1.resolver.langer.field.language.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource
#You can override the default issuer that is set in the JDBCEngine definition if you want.
#sql1.resolver.langer.field.language.issuer=org.apache.openaz:xacml:test:sql
sql1.resolver.langer.parameters=name
sql1.resolver.langer.parameter.name.id=urn:oasis:names:tc:xacml:1.0:resource:resource-id
sql1.resolver.langer.parameter.name.datatype=http://www.w3.org/2001/XMLSchema#string
sql1.resolver.langer.parameter.name.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource

#
# These properties are for an attribute generator to build into requests.
#
xacml.attribute.generator=generate_subjectid

xacml.attribute.generator.generate_subjectid.file=generate.data
xacml.attribute.generator.generate_subjectid.attributes=city

xacml.attribute.generator.generate_subjectid.attributes.city.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource
xacml.attribute.generator.generate_subjectid.attributes.city.datatype=http://www.w3.org/2001/XMLSchema#string
xacml.attribute.generator.generate_subjectid.attributes.city.id=urn:oasis:names:tc:xacml:1.0:resource:resource-id
xacml.attribute.generator.generate_subjectid.attributes.city.field=0

