Fixed the Policy API issues and Bugfixes
[policy/engine.git] / ECOMP-PAP-REST / src / main / resources / Decision_GuardBLPolicyTemplate.xml
@@ -1,5 +1,5 @@
 <?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:xacml:policy:id:d56af069-6cf1-430c-ba07-e26602e06a52" Version="1" RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-overrides"> 
+<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="urn:com:xacml:policy:id:d56af069-6cf1-430c-ba07-e26602e06a52" Version="1" RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:permit-unless-deny"> 
     <Description>${description}</Description>
     <Target>
         <AnyOf>
@@ -37,8 +37,8 @@
             </AnyOf>
         </Target>
         <Condition>
-            <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:or">
-                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
+                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
+                               <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
                     <Apply FunctionId="urn:oasis:names:tc:xacml:2.0:function:time-in-range">
                         <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
                             <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-time" DataType="http://www.w3.org/2001/XMLSchema#time" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" MustBePresent="false"/>
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">${guardActiveStart}</AttributeValue>
                         <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">${guardActiveEnd}</AttributeValue>
                     </Apply>
-                </Apply>
-                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than-or-equal">
-                    <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
-                        <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="count" DataType="http://www.w3.org/2001/XMLSchema#integer" Issuer="org:openecomp:xacml:sql:${timeWindow}" MustBePresent="false"/>
-                    </Apply>
-                    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#integer">${limit}</AttributeValue>
+                                       <Apply FunctionId="urn:oasis:names:tc:xacml:3.0:function:any-of">
+                                               <Function 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="target" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
+                                                       </Apply>
+                                                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
+                                                               <!-- <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">vserver.vserver-name</AttributeValue>-->
+                                                               ${blackListElement}
+                                                       </Apply>
+                                       </Apply>
                 </Apply>
             </Apply>
         </Condition>
         </Target>
         <Condition>
             <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
-                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:or">
-                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
-                               <Apply FunctionId="urn:oasis:names:tc:xacml:2.0:function:time-in-range">
-                               <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
-                               <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-time" DataType="http://www.w3.org/2001/XMLSchema#time" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" MustBePresent="false"/>
-                               </Apply>
-                               <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">${guardActiveStart}</AttributeValue>
-                               <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">${guardActiveEnd}</AttributeValue>
-                       </Apply>
-                       </Apply>
-                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-less-than-or-equal">
-                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only">
-                               <AttributeDesignator Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" AttributeId="count" DataType="http://www.w3.org/2001/XMLSchema#integer" Issuer="org:openecomp:xacml:sql:${timeWindow}" MustBePresent="false"/>
-                       </Apply>
-                       <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#integer">${limit}</AttributeValue>
-                       </Apply>
-               </Apply>
+                <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
+                                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
+                                               <Apply FunctionId="urn:oasis:names:tc:xacml:2.0:function:time-in-range">
+                                                       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:time-one-and-only">
+                                                               <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-time" DataType="http://www.w3.org/2001/XMLSchema#time" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" MustBePresent="false"/>
+                                                       </Apply>
+                                                       <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">${guardActiveStart}</AttributeValue>
+                                                       <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">${guardActiveEnd}</AttributeValue>
+                                               </Apply>
+                                               <Apply FunctionId="urn:oasis:names:tc:xacml:3.0:function:any-of">
+                                                       <Function 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="target" DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="false"/>
+                                                               </Apply>
+                                                               <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag">
+                                                                       <!-- <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">vserver.vserver-name</AttributeValue>-->
+                                                                       ${blackListElement}
+                                                               </Apply>
+                                               </Apply>
+                                       </Apply>
+                               </Apply>
             </Apply>
         </Condition>
         <AdviceExpressions>
-            <AdviceExpression AdviceId="GUARD_YAML" AppliesTo="Deny">
+            <AdviceExpression AdviceId="GUARD_BL_YAML" AppliesTo="Deny">
                 <AttributeAssignmentExpression AttributeId="guard.response" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource">
                     <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Denied!</AttributeValue>
                 </AttributeAssignmentExpression>