# PIP Engine Definition
#
xacml.pip.engines=csv1,csv2,hyper1,sql1,ldap1

csv1.classname=org.apache.openaz.xacml.std.pip.engines.csv.CSVEngine
csv1.name=Master
csv1.description=Sean Lahman Basebase stats - Player names, DOB, and biographical info
csv1.issuer=org.apache.openaz:xacml:test:csv
csv1.source=../XACML-TEST/testsets/pip/configurable-csv/adminDB/Master.txt
csv1.maxsize=500000
csv1.delimiter=,
csv1.quote="
csv1.skip=0

csv1.resolvers=data

csv1.resolver.data.classname=org.apache.openaz.xacml.std.pip.engines.csv.ConfigurableCSVResolver
csv1.resolver.data.name=Player Resolver
csv1.resolver.data.description=This resolver finds player information in the Master table.
csv1.resolver.data.fields=firstname,lastname,deathyear,deathmonth,deathday,debut,finalgame
csv1.resolver.data.field.firstname.column=16
csv1.resolver.data.field.firstname.id=org.apache.openaz:xacml:test:csv:subject:firstname
csv1.resolver.data.field.firstname.datatype=http://www.w3.org/2001/XMLSchema#string
csv1.resolver.data.field.firstname.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.field.lastname.column=17
csv1.resolver.data.field.lastname.id=org.apache.openaz:xacml:test:csv:subject:lastname
csv1.resolver.data.field.lastname.datatype=http://www.w3.org/2001/XMLSchema#string
csv1.resolver.data.field.lastname.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.field.deathyear.column=10
csv1.resolver.data.field.deathyear.id=org.apache.openaz:xacml:test:csv:subject:deathyear
csv1.resolver.data.field.deathyear.datatype=http://www.w3.org/2001/XMLSchema#integer
csv1.resolver.data.field.deathyear.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.field.deathmonth.column=11
csv1.resolver.data.field.deathmonth.id=org.apache.openaz:xacml:test:csv:subject:deathmonth
csv1.resolver.data.field.deathmonth.datatype=http://www.w3.org/2001/XMLSchema#integer
csv1.resolver.data.field.deathmonth.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.field.deathday.column=12
csv1.resolver.data.field.deathday.id=org.apache.openaz:xacml:test:csv:subject:deathday
csv1.resolver.data.field.deathday.datatype=http://www.w3.org/2001/XMLSchema#integer
csv1.resolver.data.field.deathday.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.field.debut.column=25
csv1.resolver.data.field.debut.id=org.apache.openaz:xacml:test:csv:subject:debut
csv1.resolver.data.field.debut.datatype=http://www.w3.org/2001/XMLSchema#date
csv1.resolver.data.field.debut.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.field.finalgame.column=26
csv1.resolver.data.field.finalgame.id=org.apache.openaz:xacml:test:csv:subject:finalgame
csv1.resolver.data.field.finalgame.datatype=http://www.w3.org/2001/XMLSchema#date
csv1.resolver.data.field.finalgame.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv1.resolver.data.parameters=playerid
csv1.resolver.data.parameter.playerid.column=1
csv1.resolver.data.parameter.playerid.id=urn:oasis:names:tc:xacml:1.0:subject:subject-id
csv1.resolver.data.parameter.playerid.datatype=http://www.w3.org/2001/XMLSchema#string
csv1.resolver.data.parameter.playerid.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

csv2.classname=org.apache.openaz.xacml.std.pip.engines.csv.CSVEngine
csv2.name=Appearances
csv2.description=Sean Lahman Basebase stats - Player appearances for a team in a given year.
#csv2.issuer=
csv2.source=../XACML-TEST/testsets/pip/configurable-csv/adminDB/Appearances.txt
csv2.maxsize=500000
csv2.delimiter=,
csv2.quote="
csv2.skip=0

csv2.resolvers=data

csv2.resolver.data.classname=org.apache.openaz.xacml.std.pip.engines.csv.ConfigurableCSVResolver
csv2.resolver.data.name=Appearance Resolver
csv2.resolver.data.description=This resolver returns all the appearances for a player from the appearance table.
csv2.resolver.data.fields=appearance
csv2.resolver.data.field.appearance.column=0
csv2.resolver.data.field.appearance.id=org.apache.openaz:xacml:test:csv:subject:appearance
csv2.resolver.data.field.appearance.datatype=http://www.w3.org/2001/XMLSchema#integer
csv2.resolver.data.field.appearance.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject
csv2.resolver.data.field.appearance.issuer=org.apache.openaz:xacml:test:csv

csv2.resolver.data.parameters=playerid
csv2.resolver.data.parameter.playerid.column=3
csv2.resolver.data.parameter.playerid.id=urn:oasis:names:tc:xacml:1.0:subject:subject-id
csv2.resolver.data.parameter.playerid.datatype=http://www.w3.org/2001/XMLSchema#string
csv2.resolver.data.parameter.playerid.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject
#csv1.resolver.data.parameter.playerid.issuer=

hyper1.classname=org.apache.openaz.xacml.std.pip.engines.csv.HyperCSVEngine
hyper1.name=World Marriage Age Limits
hyper1.description=Minimum age for female/male marriages with or without their parental consent.
hyper1.source=../XACML-TEST/testsets/pip/configurable-csv-hyper/marriage.csv
hyper1.target=marriage
hyper1.definition=country VARCHAR(80) PRIMARY KEY, wofemale INT, womale INT, wfemale INT, wmale INT, year INT, source VARCHAR(20)

hyper1.resolvers=age_consent

hyper1.resolver.age_consent.classname=org.apache.openaz.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver
hyper1.resolver.age_consent.name=Ages
hyper1.resolver.age_consent.description=This returns all the age's for consent or no consent for a country.
hyper1.resolver.age_consent.select=SELECT wofemale,womale,wfemale,wmale FROM marriage WHERE country=?
hyper1.resolver.age_consent.fields=wofemale,womale,wfemale,wmale

hyper1.resolver.age_consent.field.wofemale.id=org.apache.openaz:xacml:test:csv:country:no-consent:female
hyper1.resolver.age_consent.field.wofemale.datatype=http://www.w3.org/2001/XMLSchema#integer
hyper1.resolver.age_consent.field.wofemale.category=org.apache.openaz:xacml:test:csv:category:country
hyper1.resolver.age_consent.field.wofemale.issuer=org.apache.openaz:xacml:test:csv

hyper1.resolver.age_consent.field.womale.id=org.apache.openaz:xacml:test:csv:country:no-consent:male
hyper1.resolver.age_consent.field.womale.datatype=http://www.w3.org/2001/XMLSchema#integer
hyper1.resolver.age_consent.field.womale.category=org.apache.openaz:xacml:test:csv:category:country
hyper1.resolver.age_consent.field.womale.issuer=org.apache.openaz:xacml:test:csv

hyper1.resolver.age_consent.field.wfemale.id=org.apache.openaz:xacml:test:csv:country:consent:female
hyper1.resolver.age_consent.field.wfemale.datatype=http://www.w3.org/2001/XMLSchema#integer
hyper1.resolver.age_consent.field.wfemale.category=org.apache.openaz:xacml:test:csv:category:country
hyper1.resolver.age_consent.field.wfemale.issuer=org.apache.openaz:xacml:test:csv

hyper1.resolver.age_consent.field.wmale.id=org.apache.openaz:xacml:test:csv:country:consent:male
hyper1.resolver.age_consent.field.wmale.datatype=http://www.w3.org/2001/XMLSchema#integer
hyper1.resolver.age_consent.field.wmale.category=org.apache.openaz:xacml:test:csv:category:country
hyper1.resolver.age_consent.field.wmale.issuer=org.apache.openaz:xacml:test:csv

hyper1.resolver.age_consent.parameters=country
hyper1.resolver.age_consent.parameter.country.id=org.apache.openaz:xacml:test:csv:country:name
hyper1.resolver.age_consent.parameter.country.datatype=http://www.w3.org/2001/XMLSchema#string
hyper1.resolver.age_consent.parameter.country.category=org.apache.openaz:xacml:test:csv:category:country
#hyper1.resolver.age_consent.parameter.country.issuer=

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


ldap1.classname=org.apache.openaz.xacml.std.pip.engines.ldap.LDAPEngine
ldap1.name=LDAP PIP
ldap1.description=The LDAP containing the seven seas sample LDIF data.
ldap1.issuer=org.apache.openaz:xacml:test:ldap
ldap1.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
#
# NOTE: You will have to setup a local LDAP server and load the data\apache-ds-tutorial.ldif before
# this example will work.
#
ldap1.java.naming.provider.url=ldap://localhost:10389
#ldap.java.naming.security.principal=
#ldap.java.naming.security.credentials=
ldap1.scope=subtree

ldap1.resolvers=dn,ship

ldap1.resolver.dn.classname=org.apache.openaz.xacml.std.pip.engines.ldap.ConfigurableLDAPResolver
ldap1.resolver.dn.name=Domain Names
ldap1.resolver.dn.description=Find all the dn's for the subject id
ldap1.resolver.dn.base=o=sevenseas
ldap1.resolver.dn.base.parameters=
ldap1.resolver.dn.filter=(|(uid=${uid})(mail=${uid}))
ldap1.resolver.dn.filter.parameters=uid
ldap1.resolver.dn.filter.parameters.uid.id=urn:oasis:names:tc:xacml:1.0:subject:subject-id
ldap1.resolver.dn.filter.parameters.uid.datatype=http://www.w3.org/2001/XMLSchema#string
ldap1.resolver.dn.filter.parameters.uid.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject
#ldap1.resolver.dn.filter.parameters.uid.issuer=org.apache.openaz:xacml:test:ldap
ldap1.resolver.dn.filter.view=dn
ldap1.resolver.dn.filter.view.dn.id=org.apache.openaz:xacml:test:ldap:subject:dn
ldap1.resolver.dn.filter.view.dn.datatype=http://www.w3.org/2001/XMLSchema#string
ldap1.resolver.dn.filter.view.dn.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource
ldap1.resolver.dn.filter.view.dn.issuer=org.apache.openaz:xacml:test:ldap

ldap1.resolver.ship.classname=org.apache.openaz.xacml.std.pip.engines.ldap.ConfigurableLDAPResolver
ldap1.resolver.ship.name=Ship Resolver
ldap1.resolver.ship.description=This resolves a subject's dn to a ship.
ldap1.resolver.ship.base=o=sevenseas
ldap1.resolver.ship.base.parameters=
ldap1.resolver.ship.filter=uniquemember=${dn}
ldap1.resolver.ship.filter.parameters=dn
ldap1.resolver.ship.filter.parameters.dn.id=org.apache.openaz:xacml:test:ldap:subject:dn
ldap1.resolver.ship.filter.parameters.dn.datatype=http://www.w3.org/2001/XMLSchema#string
ldap1.resolver.ship.filter.parameters.dn.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource
ldap1.resolver.ship.filter.parameters.dn.issuer=org.apache.openaz:xacml:test:ldap
ldap1.resolver.ship.filter.view=cn
ldap1.resolver.ship.filter.view.cn.id=org.apache.openaz:xacml:test:ldap:subject:ship
ldap1.resolver.ship.filter.view.cn.datatype=http://www.w3.org/2001/XMLSchema#string
ldap1.resolver.ship.filter.view.cn.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource
ldap1.resolver.ship.filter.view.cn.issuer=org.apache.openaz:xacml:test:ldap

