Yes. This seems to be an issue. Thanks for fixing this....

Thanks,
Asela.

On Fri, Nov 9, 2012 at 12:46 PM, Lakmali Baminiwatta <lakm...@wso2.com>wrote:

> Hi,
>
> I have the following policy, which I am going to evaluate with multiple
> values for subject attribute.
>
> <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
> PolicyId="Entitlement_Filter_Sample_Policy"
> RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"
> Version="1.0">
>    <Target></Target>
>    <Rule Effect="Permit" RuleId="Rule1">
>       <Target>
>          <AnyOf>
>             <AllOf>
>                <Match
> MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
>                   <AttributeValue DataType="
> http://www.w3.org/2001/XMLSchema#string";>/twitter/*</AttributeValue>
>                   <AttributeDesignator
> AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
> Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource"
> DataType="http://www.w3.org/2001/XMLSchema#string";
> MustBePresent="true"></AttributeDesignator>
>                </Match>
>                <Match
> MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
>                   <AttributeValue DataType="
> http://www.w3.org/2001/XMLSchema#string";>GET</AttributeValue>
>                   <AttributeDesignator
> AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
> Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" DataType="
> http://www.w3.org/2001/XMLSchema#string";
> MustBePresent="true"></AttributeDesignator>
>                </Match>
>                <Match
> MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
>                   <AttributeValue DataType="
> http://www.w3.org/2001/XMLSchema#string";>everyone</AttributeValue>
>                   <AttributeDesignator
> AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
> Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
> DataType="http://www.w3.org/2001/XMLSchema#string";
> MustBePresent="true"></AttributeDesignator>
>                </Match>
>             </AllOf>
>          </AnyOf>
>       </Target>
>    </Rule>
>    <Rule Effect="Deny" RuleId="Rule2"></Rule>
> </Policy>
>
> When I send admin, everone as Subject Names the decision is 'Deny'. But If
> I send everyone, admin , the decision is 'Permit'.
>
> I debugged the balana code and found that it only retrieves the first
> attribute value and add it. So I did a fix in XACML3EvaluationCtx class to
> add all the attribute values. After that this scenario worked for both
> cases.
>
> Here is the diff of my fix.
>
> ---
> modules/balana-core/src/main/java/org/wso2/balana/ctx/xacml3/XACML3EvaluationCtx.java
> (revision 147595)
> +++
> modules/balana-core/src/main/java/org/wso2/balana/ctx/xacml3/XACML3EvaluationCtx.java
> (working copy)
> @@ -125,7 +125,10 @@
>                  if(attribute.getId().equals(id) &&
> attribute.getType().equals(type)
>                          && (issuer == null ||
> issuer.equals(attribute.getIssuer()))
>                          && attribute.getValue() != null){
> -                    attributeValues.add(attribute.getValue());
> +                    List<AttributeValue> attributeValueList =
> attribute.getValues();
> +                    for (AttributeValue attributeVal :
> attributeValueList) {
> +                        attributeValues.add(attributeVal);
> +                    }
>                  }
>              }
>
> Is this fix ok to procede with or was there any thing need to be changed
> in the policy, to work this scenario.
>
> Thanks,
> Lakmali
>
>
> --
> Lakmali Baminiwatta*
> *
> Software Engineer
> WSO2, Inc.: http://wso2.com
> lean.enterprise.middleware
>
> *
> *
>
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to