← Prev in month ← Prev in thread

[xacml] re: Attribute Selector example

From
Simon Godik <>
Date
2002-08-25T04:47:21+00:00
ID
028d01c24bf1$f5b6bab0$6501a8c0@C908876A
Thread
[xacml] re: Attribute Selector example
Michiharu,

 

I see that you want to compute 
the node-set of xpath expression specified in 

the request-context before passing it to the node-match function.

 

Of course, something like that could be 
accomplished in the condition

with 'xpath-expr' function:

<Apply 
FunctionId="function:node-match">

    <Apply 
FunctionId="function:xpath-expr">

        
<ResourceAttributeDesignator 

        
    
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:xpath"

        
    DataType="xs:string"/>

    </Apply>

    <AttributeSelector 
RequestContextPath="..."/>

</Apply>

 

You want to do the same thing in the 
target.

 

I'm not completely sold on your syntax for 
AttributeSelector. I'd prefer this extension:

<AttributeSelector indirect="true"> (or 
IndirectAttributeSelector)

    <ResourceAttributeDesignator 
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:xpath"

        
DataType="xsi:string"/>

</AttributeSelector>

 

Better yet to relax 'match' element to allow 
'apply' children.

 

Another approach:

I think that complication is in 'node-match' 
function definition that takes --results--

of xpath expression. That forces you to produce 
this result, so you

need additional semantics in 
attribute-selector.

 

Consider different function that takes 
--xpath-expressions-- as arguments

(as in examples in section 3). Than you do not have 
to produce node sets

before calling this function and no change in 
schema is needed.

 

Suppose that node-match-1 has exact same 
semantics as node-match but

take 2 xpath expressions: xpath-expr-request and 
xpath-expr-rule:
node-match-1(xpath-expr-req, xpath-expr-rule).

 

You can use it in the target:

<ResourceMatch 
MatchId="function:node-match-1">

    <ResourceAttributeDesignator 

        
AttributeId="urn:oasis:names:tc:xacml:1.0:resource:xpath"

        
DataType="xsi:string"/>

    <AttributeValue 
DataType="xsi:string">//md:record</AttributeValue>

</ResourceMatch>

 

Simon
← Prev in month ← Prev in thread