http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.pip.properties
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.pip.properties 
b/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.pip.properties
new file mode 100755
index 0000000..17ec3a2
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.pip.properties
@@ -0,0 +1,227 @@
+# PIP Engine Definition
+#
+xacml.pip.engines=csv1,csv2,hyper1
+
+ATTWebPhone.classname=com.att.research.xacmlatt.pip.webphone.PIPEngineATTWebphone
+CSO.classname=com.att.research.xacmlatt.pip.cso.PIPEngineCSOCookie
+CSO.mode=DEVL
+
+csv1.classname=com.att.research.xacml.std.pip.engines.csv.CSVEngine
+csv1.name=Master
+csv1.description=Sean Lahman Basebase stats - Player names, DOB, and 
biographical info
+csv1.issuer=com:att:research: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=com.att.research.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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wofemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.womale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.womale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wfemale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wfemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wmale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wmale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.parameters=country
+hyper1.resolver.age_consent.parameter.country.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+#hyper1.resolver.age_consent.parameter.country.issuer=
+
+sql1.classname=com.att.research.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=com:att:research: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=
+sql1.jdbc.url=jdbc:postgresql://xacml-pip.research.att.com:5432/world
+sql1.jdbc.conn.user=pip
+sql1.jdbc.conn.password=p1pUs3r
+#
+# This is the configuration for JNDI datasource.
+#
+#sql1.type=jndi
+#sql1.datasource=jdbc/xacml
+
+sql1.resolvers=langer
+
+sql1.resolver.langer.classname=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.xacml.std.pip.engines.ldap.LDAPEngine
+ldap1.name=LDAP PIP
+ldap1.description=The LDAP containing the seven seas sample LDIF data.
+ldap1.issuer=com:att:research: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
+ldap1.java.naming.provider.url=ldap://xacml-pip.research.att.com:10389
+#ldap.java.naming.security.principal=
+#ldap.java.naming.security.credentials=
+ldap1.scope=subtree
+
+ldap1.resolvers=dn,ship
+
+ldap1.resolver.dn.classname=com.att.research.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=com:att:research:xacml:test:ldap
+ldap1.resolver.dn.filter.view=dn
+ldap1.resolver.dn.filter.view.dn.id=com:att:research: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=com:att:research:xacml:test:ldap
+
+ldap1.resolver.ship.classname=com.att.research.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=com:att:research: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=com:att:research:xacml:test:ldap
+ldap1.resolver.ship.filter.view=cn
+ldap1.resolver.ship.filter.view.cn.id=com:att:research: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=com:att:research:xacml:test:ldap
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.policy.properties
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.policy.properties 
b/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.policy.properties
new file mode 100755
index 0000000..6c2cb20
--- /dev/null
+++ 
b/openaz-xacml-pap-rest/pdps/configurable-csv-and-hyper/xacml.policy.properties
@@ -0,0 +1,8 @@
+xacml.rootPolicies=CSV-Baseball-Hall-Of-Fame-v1.xml,CSV-Legal-Age-Marriage-v1.xml
+xacml.referencedPolicies=
+
+
+CSV-Baseball-Hall-Of-Fame-v1.xml.url=http://localhost:9090/pap/?id=CSV-Baseball-Hall-Of-Fame-v1.xml
+
+CSV-Legal-Age-Marriage-v1.xml.url=http://localhost:9090/pap/?id=CSV-Legal-Age-Marriage-v1.xml
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/CSV-Legal-Age-Marriage-v1.xml
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/CSV-Legal-Age-Marriage-v1.xml
 
b/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/CSV-Legal-Age-Marriage-v1.xml
new file mode 100755
index 0000000..15e25ed
--- /dev/null
+++ 
b/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/CSV-Legal-Age-Marriage-v1.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<PolicySet xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
PolicySetId="urn:com:att:xacml:policy:id:98779898-b880-44d7-bee5-ce54e42266eb" 
Version="1" 
PolicyCombiningAlgId="urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides">
+    <Description>Sample policy for the XACML-TEST project that tests the 
configurable CSV PIP.</Description>
+    <Target>
+        <AnyOf>
+            <AllOf>
+                <Match 
MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
+                    <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>Marry</AttributeValue>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="false"/>
+                </Match>
+            </AllOf>
+        </AnyOf>
+    </Target>
+    <Policy 
PolicyId="urn:com:att:xacml:policy:id:c6791398-7e1f-4564-8f5c-19f406ea9950" 
Version="1" 
RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-unless-permit">
+        <Description>Checks the subject. </Description>
+        <Target/>
+        <VariableDefinition VariableId="isSubjectFemale">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:3.0:function:string-equal-ignore-case">
+                <Description>sex=Female</Description>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                    <Description>un-bag</Description>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:sex" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Apply>
+                <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>Female</AttributeValue>
+            </Apply>
+        </VariableDefinition>
+        <VariableDefinition VariableId="isSubjectMale">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:3.0:function:string-equal-ignore-case">
+                <Description>subject sex=Male</Description>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                    <Description>Un-bag</Description>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:sex" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Apply>
+                <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>Male</AttributeValue>
+            </Apply>
+        </VariableDefinition>
+        <VariableDefinition VariableId="doesSubjectNeedParentalConsent">
+            <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:or">
+                <Description>Is the subject a female OR male?</Description>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Description>Is female AND does not need parental 
consent.</Description>
+                    <VariableReference VariableId="isSubjectFemale"/>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than">
+                        <Description>age &gt;= consent age</Description>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag attribute.</Description>
+                            <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:age" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; MustBePresent="true"/>
+                        </Apply>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag attribute.</Description>
+                            <AttributeDesignator 
Category="com:att:research:xacml:test:csv:category:country" 
AttributeId="com:att:research:xacml:test:csv:country:no-consent:female" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; 
Issuer="com:att:research:xacml:test:csv" MustBePresent="false"/>
+                        </Apply>
+                    </Apply>
+                </Apply>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Description>Is subject male AND age &gt;= male consent 
age.</Description>
+                    <VariableReference VariableId="isSubjectMale"/>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than">
+                        <Description>age &gt;= legal age of consent for 
male.</Description>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag attribute.</Description>
+                            <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:age" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; MustBePresent="true"/>
+                        </Apply>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag attribute.</Description>
+                            <AttributeDesignator 
Category="com:att:research:xacml:test:csv:category:country" 
AttributeId="com:att:research:xacml:test:csv:country:no-consent:male" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; 
Issuer="com:att:research:xacml:test:csv" MustBePresent="false"/>
+                        </Apply>
+                    </Apply>
+                </Apply>
+            </Apply>
+        </VariableDefinition>
+         <VariableDefinition VariableId="doesSubjectHaveParentalConsent">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-one-and-only">
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:parental-consent" 
DataType="http://www.w3.org/2001/XMLSchema#boolean"; MustBePresent="true"/>
+                </Apply>
+                <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>true</AttributeValue>
+            </Apply>
+        </VariableDefinition>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:5970b5d2-c0f3-4132-bfa2-268467b21ed7" 
Effect="Permit">
+            <Description>If the subject does NOT need consent, then 
PERMIT.</Description>
+            <Target/>
+            <Condition>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                    <VariableReference 
VariableId="doesSubjectNeedParentalConsent"/>
+                    <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>false</AttributeValue>
+                </Apply>
+            </Condition>
+        </Rule>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:04b3e93d-ec4e-4cce-a00e-6a54cf3c4056" 
Effect="Permit">
+            <Description>If the subject needs consent AND has parental 
consent, then Permit.</Description>
+            <Target/>
+            <Condition>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                        <VariableReference 
VariableId="doesSubjectNeedParentalConsent"/>
+                        <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>true</AttributeValue>
+                    </Apply>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                        <VariableReference 
VariableId="doesSubjectHaveParentalConsent"/>
+                        <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>true</AttributeValue>
+                    </Apply>
+                </Apply>
+            </Condition>
+        </Rule>
+    </Policy>
+    <Policy 
PolicyId="urn:com:att:xacml:policy:id:32474315-9d06-47a4-bc2d-319e0568742c" 
Version="1" 
RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-unless-permit">
+        <Description>Check the resource.</Description>
+        <Target/>
+        <VariableDefinition VariableId="isResourceFemale">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:3.0:function:string-equal-ignore-case">
+                <Description>sex=Female</Description>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                    <Description>un-bag</Description>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:csv:resource:sex" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Apply>
+                <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>Female</AttributeValue>
+            </Apply>
+        </VariableDefinition>
+        <VariableDefinition VariableId="isResourceMale">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:3.0:function:string-equal-ignore-case">
+                <Description>subject sex=Male</Description>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                    <Description>Un-bag</Description>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:csv:resource:sex" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Apply>
+                <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>Male</AttributeValue>
+            </Apply>
+        </VariableDefinition>
+        <VariableDefinition VariableId="doesResourceNeedParentalConsent">
+            <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:or">
+                <Description>Is resource female OR male?</Description>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Description>Is female AND does not need parental 
consent.</Description>
+                    <VariableReference VariableId="isResourceFemale"/>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than">
+                        <Description>age &gt;= consent age for 
female.</Description>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag attribute</Description>
+                            <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:csv:resource:age" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; MustBePresent="true"/>
+                        </Apply>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>un-bag attribute</Description>
+                            <AttributeDesignator 
Category="com:att:research:xacml:test:csv:category:country" 
AttributeId="com:att:research:xacml:test:csv:country:no-consent:female" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; 
Issuer="com:att:research:xacml:test:csv" MustBePresent="false"/>
+                        </Apply>
+                    </Apply>
+                </Apply>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Description>Is male and AND does not need parental 
consent.</Description>
+                    <VariableReference VariableId="isResourceMale"/>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than">
+                        <Description>age &gt;= consent age for 
male.</Description>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag</Description>
+                            <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:csv:resource:age" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; MustBePresent="false"/>
+                        </Apply>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
+                            <Description>Un-bag</Description>
+                            <AttributeDesignator 
Category="com:att:research:xacml:test:csv:category:country" 
AttributeId="com:att:research:xacml:test:csv:country:no-consent:male" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; MustBePresent="false"/>
+                        </Apply>
+                    </Apply>
+                </Apply>
+            </Apply>
+        </VariableDefinition>
+        <VariableDefinition VariableId="doesResourceHaveParentalConsent">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-one-and-only">
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:csv:resource:parental-consent" 
DataType="http://www.w3.org/2001/XMLSchema#boolean"; MustBePresent="true"/>
+                </Apply>
+                <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>true</AttributeValue>
+            </Apply>
+        </VariableDefinition>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:7d1c6802-97f7-44f6-9819-12edc1801fb7" 
Effect="Permit">
+            <Description>If the resource does NOT need consent, then 
PERMIT.</Description>
+            <Target/>
+            <Condition>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                    <VariableReference 
VariableId="doesResourceNeedParentalConsent"/>
+                    <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>false</AttributeValue>
+                </Apply>
+            </Condition>
+        </Rule>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:62e07da4-f0e5-46eb-9894-f5e6d2e5868b" 
Effect="Permit">
+            <Description>The resources needs parental consent and has parental 
consent then PERMIT.</Description>
+            <Target/>
+            <Condition>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                        <VariableReference 
VariableId="doesResourceNeedParentalConsent"/>
+                        <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>true</AttributeValue>
+                    </Apply>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:boolean-equal">
+                        <VariableReference 
VariableId="doesResourceHaveParentalConsent"/>
+                        <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#boolean";>true</AttributeValue>
+                    </Apply>
+                </Apply>
+            </Condition>
+        </Rule>
+    </Policy>
+</PolicySet>

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.pip.properties
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.pip.properties 
b/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.pip.properties
new file mode 100755
index 0000000..5f66428
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.pip.properties
@@ -0,0 +1,227 @@
+# PIP Engine Definition
+#
+xacml.pip.engines=hyper1
+
+ATTWebPhone.classname=com.att.research.xacmlatt.pip.webphone.PIPEngineATTWebphone
+CSO.classname=com.att.research.xacmlatt.pip.cso.PIPEngineCSOCookie
+CSO.mode=DEVL
+
+csv1.classname=com.att.research.xacml.std.pip.engines.csv.CSVEngine
+csv1.name=Master
+csv1.description=Sean Lahman Basebase stats - Player names, DOB, and 
biographical info
+csv1.issuer=com:att:research: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=com.att.research.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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wofemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.womale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.womale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wfemale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wfemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wmale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wmale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.parameters=country
+hyper1.resolver.age_consent.parameter.country.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+#hyper1.resolver.age_consent.parameter.country.issuer=
+
+sql1.classname=com.att.research.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=com:att:research: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=
+sql1.jdbc.url=jdbc:postgresql://xacml-pip.research.att.com:5432/world
+sql1.jdbc.conn.user=pip
+sql1.jdbc.conn.password=p1pUs3r
+#
+# This is the configuration for JNDI datasource.
+#
+#sql1.type=jndi
+#sql1.datasource=jdbc/xacml
+
+sql1.resolvers=langer
+
+sql1.resolver.langer.classname=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.xacml.std.pip.engines.ldap.LDAPEngine
+ldap1.name=LDAP PIP
+ldap1.description=The LDAP containing the seven seas sample LDIF data.
+ldap1.issuer=com:att:research: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
+ldap1.java.naming.provider.url=ldap://xacml-pip.research.att.com:10389
+#ldap.java.naming.security.principal=
+#ldap.java.naming.security.credentials=
+ldap1.scope=subtree
+
+ldap1.resolvers=dn,ship
+
+ldap1.resolver.dn.classname=com.att.research.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=com:att:research:xacml:test:ldap
+ldap1.resolver.dn.filter.view=dn
+ldap1.resolver.dn.filter.view.dn.id=com:att:research: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=com:att:research:xacml:test:ldap
+
+ldap1.resolver.ship.classname=com.att.research.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=com:att:research: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=com:att:research:xacml:test:ldap
+ldap1.resolver.ship.filter.view=cn
+ldap1.resolver.ship.filter.view.cn.id=com:att:research: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=com:att:research:xacml:test:ldap
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.policy.properties
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.policy.properties 
b/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.policy.properties
new file mode 100755
index 0000000..273f36d
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-csv-hyper/xacml.policy.properties
@@ -0,0 +1,6 @@
+xacml.rootPolicies=CSV-Legal-Age-Marriage-v1.xml
+xacml.referencedPolicies=
+
+
+CSV-Legal-Age-Marriage-v1.xml.url=http://localhost:9090/pap/?id=CSV-Legal-Age-Marriage-v1.xml
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv/CSV-Baseball-Hall-Of-Fame-v1.xml
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv/CSV-Baseball-Hall-Of-Fame-v1.xml 
b/openaz-xacml-pap-rest/pdps/configurable-csv/CSV-Baseball-Hall-Of-Fame-v1.xml
new file mode 100755
index 0000000..68c7783
--- /dev/null
+++ 
b/openaz-xacml-pap-rest/pdps/configurable-csv/CSV-Baseball-Hall-Of-Fame-v1.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<PolicySet xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
PolicySetId="urn:com:att:xacml:policy:id:f3047eab-6f97-49b4-8127-a2737a184b35" 
Version="1" 
PolicyCombiningAlgId="urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides">
+    <Description>This policy enforces the BBWAA rules for baseball Hall of 
Fame induction.
+
+http://baseballhall.org/hall-famers/rules-election/bbwaa
+</Description>
+    <Target>
+        <AnyOf>
+            <AllOf>
+                <Match 
MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
+                    <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>eligible</AttributeValue>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Match>
+                <Match 
MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
+                    <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>HOF</AttributeValue>
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Match>
+            </AllOf>
+        </AnyOf>
+    </Target>
+    <Policy 
PolicyId="urn:com:att:xacml:policy:id:8f295c67-7b6e-4db6-b558-005b36abd970" 
Version="1" 
RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable">
+        <Description>Active Timeframe:
+
+A. A baseball player must have been active as a player in the Major Leagues at 
some time during a period beginning twenty (20) years before and ending five 
(5) years prior to election.</Description>
+        <Target/>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:f04b2700-1236-4066-81e4-e341b5b2f3b5" 
Effect="Permit">
+            <Description>Player's debut date &gt;= (today's date - 20 years) 
AND final date &lt;= (today's date - 5 years).</Description>
+            <Target/>
+            <Condition>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                    <Description>debut within 20 years AND final game more 
than 5 years ago.</Description>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:date-less-than-or-equal">
+                        <Description>Debut date &lt;= (today's date - 20 
years)</Description>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:date-one-and-only">
+                            <Description>UN-bag player's debut 
date.</Description>
+                            <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:debut" 
DataType="http://www.w3.org/2001/XMLSchema#date"; 
Issuer="com:att:research:xacml:test:csv" MustBePresent="false"/>
+                        </Apply>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:3.0:function:date-subtract-yearMonthDuration">
+                            <Description>Subtract 20 years from  today's 
date.</Description>
+                            <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:date-one-and-only">
+<Description>UN-bag today's date.</Description>
+<AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" 
AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-date" 
DataType="http://www.w3.org/2001/XMLSchema#date"; MustBePresent="false"/>
+                            </Apply>
+                            <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#yearMonthDuration";>P20Y</AttributeValue>
+                        </Apply>
+                    </Apply>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:date-less-than-or-equal">
+                        <Description>Final Game &lt;= (today's date - 5 
years)</Description>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:date-one-and-only">
+                            <Description>UN-bag final game date</Description>
+                            <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:finalgame" 
DataType="http://www.w3.org/2001/XMLSchema#date"; 
Issuer="com:att:research:xacml:test:csv" MustBePresent="false"/>
+                        </Apply>
+                        <Apply 
FunctionId="urn:oasis:names:tc:xacml:3.0:function:date-subtract-yearMonthDuration">
+                            <Description>Subtract 5 years from today's 
date.</Description>
+                            <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:date-one-and-only">
+<Description>UN-bag today's date.</Description>
+<AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" 
AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-date" 
DataType="http://www.w3.org/2001/XMLSchema#date"; MustBePresent="false"/>
+                            </Apply>
+                            <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#yearMonthDuration";>P5Y</AttributeValue>
+                        </Apply>
+                    </Apply>
+                </Apply>
+            </Condition>
+        </Rule>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:33a42a79-9d82-4aa1-99d3-9fd168363695" 
Effect="Deny">
+            <Description>DENY - Default</Description>
+            <Target/>
+        </Rule>
+    </Policy>
+    <Policy 
PolicyId="urn:com:att:xacml:policy:id:1bf74cc4-658f-4e87-be22-5d5cb741f1f5" 
Version="1" 
RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable">
+        <Description>B. Player must have played in each of ten (10) Major 
League championship seasons, some part of which must have been within the 
period described in 3 (A).</Description>
+        <Target/>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:54405c39-a3f6-4a88-89bd-084f68567acd" 
Effect="Permit">
+            <Description>There should be &gt;= 10 years of appearance(s) 
values.</Description>
+            <Target/>
+            <Condition>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-greater-than-or-equal">
+                    <Description>The number of years a player 
appeared.</Description>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-bag-size">
+                        <Description>Count the number.</Description>
+                        <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="com:att:research:xacml:test:csv:subject:appearance" 
DataType="http://www.w3.org/2001/XMLSchema#integer"; 
Issuer="com:att:research:xacml:test:csv" MustBePresent="false"/>
+                    </Apply>
+                    <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#integer";>10</AttributeValue>
+                </Apply>
+            </Condition>
+        </Rule>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:912dd1a2-1527-4b6f-a95b-6a729ff9caab" 
Effect="Deny">
+            <Description>DENY - Default</Description>
+            <Target/>
+        </Rule>
+    </Policy>
+</PolicySet>

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.pip.properties
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.pip.properties 
b/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.pip.properties
new file mode 100755
index 0000000..ebd0904
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.pip.properties
@@ -0,0 +1,227 @@
+# PIP Engine Definition
+#
+xacml.pip.engines=csv1,csv2
+
+ATTWebPhone.classname=com.att.research.xacmlatt.pip.webphone.PIPEngineATTWebphone
+CSO.classname=com.att.research.xacmlatt.pip.cso.PIPEngineCSOCookie
+CSO.mode=DEVL
+
+csv1.classname=com.att.research.xacml.std.pip.engines.csv.CSVEngine
+csv1.name=Master
+csv1.description=Sean Lahman Basebase stats - Player names, DOB, and 
biographical info
+csv1.issuer=com:att:research: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=com.att.research.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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wofemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.womale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.womale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wfemale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wfemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wmale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wmale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.parameters=country
+hyper1.resolver.age_consent.parameter.country.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+#hyper1.resolver.age_consent.parameter.country.issuer=
+
+sql1.classname=com.att.research.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=com:att:research: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=
+sql1.jdbc.url=jdbc:postgresql://xacml-pip.research.att.com:5432/world
+sql1.jdbc.conn.user=pip
+sql1.jdbc.conn.password=p1pUs3r
+#
+# This is the configuration for JNDI datasource.
+#
+#sql1.type=jndi
+#sql1.datasource=jdbc/xacml
+
+sql1.resolvers=langer
+
+sql1.resolver.langer.classname=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.xacml.std.pip.engines.ldap.LDAPEngine
+ldap1.name=LDAP PIP
+ldap1.description=The LDAP containing the seven seas sample LDIF data.
+ldap1.issuer=com:att:research: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
+ldap1.java.naming.provider.url=ldap://xacml-pip.research.att.com:10389
+#ldap.java.naming.security.principal=
+#ldap.java.naming.security.credentials=
+ldap1.scope=subtree
+
+ldap1.resolvers=dn,ship
+
+ldap1.resolver.dn.classname=com.att.research.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=com:att:research:xacml:test:ldap
+ldap1.resolver.dn.filter.view=dn
+ldap1.resolver.dn.filter.view.dn.id=com:att:research: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=com:att:research:xacml:test:ldap
+
+ldap1.resolver.ship.classname=com.att.research.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=com:att:research: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=com:att:research:xacml:test:ldap
+ldap1.resolver.ship.filter.view=cn
+ldap1.resolver.ship.filter.view.cn.id=com:att:research: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=com:att:research:xacml:test:ldap
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.policy.properties
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.policy.properties 
b/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.policy.properties
new file mode 100755
index 0000000..59a8dd7
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-csv/xacml.policy.properties
@@ -0,0 +1,6 @@
+xacml.rootPolicies=CSV-Baseball-Hall-Of-Fame-v1.xml
+xacml.referencedPolicies=
+
+
+CSV-Baseball-Hall-Of-Fame-v1.xml.url=http://localhost:9090/pap/?id=CSV-Baseball-Hall-Of-Fame-v1.xml
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-ldap/LDAP-Seven-Seas-v1.xml
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-ldap/LDAP-Seven-Seas-v1.xml 
b/openaz-xacml-pap-rest/pdps/configurable-ldap/LDAP-Seven-Seas-v1.xml
new file mode 100755
index 0000000..9e36f68
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-ldap/LDAP-Seven-Seas-v1.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
PolicyId="urn:com:att:xacml:policy:id:94378f81-6810-408f-a072-a1a8a7585a24" 
Version="1" 
RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable">
+       <Description>Sample policy that demonstrates use of Configurable LDAP 
Resolver with sample data.
+
+The PEP Request should provide the following attributes:
+action-id=board
+subject-id-qualifer=uid|mail
+subject-id=hnelson|[email protected]
+resource-id=HMS Lydia|HMS Victory|HMS Bounty
+       </Description>
+        <Target>
+            <AnyOf>
+                <AllOf>
+                    <Match 
MatchId="urn:oasis:names:tc:xacml:3.0:function:string-equal-ignore-case">
+                        <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>board</AttributeValue>
+                        <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                    </Match>
+                </AllOf>
+            </AnyOf>
+        </Target>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:bf241671-54de-404c-ac59-bb17b919783f" 
Effect="Permit">
+            <Description>This sailor is a member of the crew for the 
ship.</Description>
+            <Target/>
+            <Condition>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                        <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:ldap:subject:ship" 
DataType="http://www.w3.org/2001/XMLSchema#string"; 
Issuer="com:att:research:xacml:test:ldap" MustBePresent="false"/>
+                    </Apply>
+                    <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                        <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                    </Apply>
+                </Apply>
+            </Condition>
+        </Rule>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:490228ea-98ee-48d8-84c9-da07334726fd" 
Effect="Deny">
+            <Description>Default is to DENY.</Description>
+            <Target/>
+        </Rule>
+</Policy>

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.pip.properties
----------------------------------------------------------------------
diff --git a/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.pip.properties 
b/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.pip.properties
new file mode 100755
index 0000000..deb58b4
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.pip.properties
@@ -0,0 +1,227 @@
+# PIP Engine Definition
+#
+xacml.pip.engines=ldap1
+
+ATTWebPhone.classname=com.att.research.xacmlatt.pip.webphone.PIPEngineATTWebphone
+CSO.classname=com.att.research.xacmlatt.pip.cso.PIPEngineCSOCookie
+CSO.mode=DEVL
+
+csv1.classname=com.att.research.xacml.std.pip.engines.csv.CSVEngine
+csv1.name=Master
+csv1.description=Sean Lahman Basebase stats - Player names, DOB, and 
biographical info
+csv1.issuer=com:att:research:xacml:test:csv
+csv1.source=../XACML-TEST/testsets/pip/configurable-csv/adminDB/Master.txt
+csv1.maxsize=4000000
+csv1.delimiter=,
+csv1.quote="
+csv1.skip=0
+
+csv1.resolvers=data
+
+csv1.resolver.data.classname=com.att.research.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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com:att:research: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=com.att.research.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=4000000
+csv2.delimiter=,
+csv2.quote="
+csv2.skip=0
+
+csv2.resolvers=data
+
+csv2.resolver.data.classname=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.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=com.att.research.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=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wofemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.womale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.womale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wfemale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wfemale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.field.wmale.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+hyper1.resolver.age_consent.field.wmale.issuer=com:att:research:xacml:test:csv
+
+hyper1.resolver.age_consent.parameters=country
+hyper1.resolver.age_consent.parameter.country.id=com:att:research: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=com:att:research:xacml:test:csv:category:country
+#hyper1.resolver.age_consent.parameter.country.issuer=
+
+sql1.classname=com.att.research.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=com:att:research: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=
+sql1.jdbc.url=jdbc:postgresql://xacml-pip.research.att.com:5432/world
+sql1.jdbc.conn.user=pip
+sql1.jdbc.conn.password=p1pUs3r
+#
+# This is the configuration for JNDI datasource.
+#
+#sql1.type=jndi
+#sql1.datasource=jdbc/xacml
+
+sql1.resolvers=langer
+
+sql1.resolver.langer.classname=com.att.research.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=com:att:research: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=com:att:research: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=com.att.research.xacml.std.pip.engines.ldap.LDAPEngine
+ldap1.name=LDAP PIP
+ldap1.description=The LDAP containing the seven seas sample LDIF data.
+ldap1.issuer=com:att:research: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
+ldap1.java.naming.provider.url=ldap://xacml-pip.research.att.com:10389
+#ldap.java.naming.security.principal=
+#ldap.java.naming.security.credentials=
+ldap1.scope=subtree
+
+ldap1.resolvers=dn,ship
+
+ldap1.resolver.dn.classname=com.att.research.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=com:att:research:xacml:test:ldap
+ldap1.resolver.dn.filter.view=dn
+ldap1.resolver.dn.filter.view.dn.id=com:att:research: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=com:att:research:xacml:test:ldap
+
+ldap1.resolver.ship.classname=com.att.research.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=com:att:research: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=com:att:research:xacml:test:ldap
+ldap1.resolver.ship.filter.view=cn
+ldap1.resolver.ship.filter.view.cn.id=com:att:research: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=com:att:research:xacml:test:ldap
+

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.policy.properties
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.policy.properties 
b/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.policy.properties
new file mode 100755
index 0000000..df57627
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-ldap/xacml.policy.properties
@@ -0,0 +1,5 @@
+xacml.rootPolicies=LDAP-Seven-Seas-v1.xml
+xacml.referencedPolicies=
+
+
+LDAP-Seven-Seas-v1.xml.url=http://localhost:9090/pap/?id=LDAP-Seven-Seas-v1.xml

http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/94fcdd90/openaz-xacml-pap-rest/pdps/configurable-sql/SQL-World-Languages-v1.xml
----------------------------------------------------------------------
diff --git 
a/openaz-xacml-pap-rest/pdps/configurable-sql/SQL-World-Languages-v1.xml 
b/openaz-xacml-pap-rest/pdps/configurable-sql/SQL-World-Languages-v1.xml
new file mode 100755
index 0000000..85443dc
--- /dev/null
+++ b/openaz-xacml-pap-rest/pdps/configurable-sql/SQL-World-Languages-v1.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
PolicyId="urn:com:att:xacml:policy:id:25e12b06-11d5-4895-b2a2-6f6c594de069" 
Version="1" 
RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable">
+        <Description>Policy for speaking a language in a city.</Description>
+        <Target>
+            <AnyOf>
+                <AllOf>
+                    <Match 
MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
+                        <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>speak</AttributeValue>
+                        <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="false"/>
+                    </Match>
+                </AllOf>
+            </AnyOf>
+        </Target>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:e1e8c5c0-e2ba-47d5-9289-6c015305ed21" 
Effect="Permit">
+            <Description>PERMIT - People in this city speak my 
language.</Description>
+            <Target/>
+            <Condition>
+                <VariableReference VariableId="cityLanguage"/>
+            </Condition>
+        </Rule>
+        <VariableDefinition VariableId="cityLanguage">
+            <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-is-in">
+                <Description>The city's language must match exactly the 
subject's language.</Description>
+                <Apply 
FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
+                    <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" 
DataType="http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
+                </Apply>
+                <AttributeDesignator 
Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
AttributeId="com:att:research:xacml:test:sql:resource:city:language" 
DataType="http://www.w3.org/2001/XMLSchema#string"; 
Issuer="com:att:research:xacml:test:sql" MustBePresent="false"/>
+            </Apply>
+        </VariableDefinition>
+        <Rule 
RuleId="urn:com:att:xacml:rule:id:c9a3fb7d-d0b9-48bb-bdca-87eb4957120c" 
Effect="Deny">
+            <Description>DENY - default.</Description>
+            <Target/>
+        </Rule>
+</Policy>

Reply via email to