org.jboss.security.xacml.sunxacml.finder
Class AttributeFinder

java.lang.Object
  extended by org.jboss.security.xacml.sunxacml.finder.AttributeFinder

public class AttributeFinder
extends Object

This class is used by the PDP to find attribute values that weren't originally supplied in the request. It can be called with the data supplied in AttributeDesignators or AttributeSelectors. Because the modules in this finder may themselves need attribute data to search for attribute data, it's possible that the modules will look for values in the EvaluationCtx, which may in turn result in the invocation of this finder again, so module writers need to be careful about how they build their modules.

Note that unlike the PolicyFinder, this class doesn't always need to use every module it has to find a value. The ordering is maintained, however, so it will always start with the first module, and proceed in order until it finds a value or runs out of modules.

Since:
1.0
Author:
Seth Proctor

Constructor Summary
AttributeFinder()
          Default constructor.
 
Method Summary
 EvaluationResult findAttribute(String contextPath, Node namespaceNode, URI attributeType, EvaluationCtx context, String xpathVersion)
          Tries to find attribute values based on the given selector data.
 EvaluationResult findAttribute(URI attributeType, URI attributeId, URI issuer, URI subjectCategory, EvaluationCtx context, int designatorType)
          Tries to find attribute values based on the given designator data.
 List getModules()
          Returns the ordered list of AttributeFinderModules used by this class to find attribute values.
 void setModules(List modules)
          Sets the ordered list of AttributeFinderModules used by this class to find attribute values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AttributeFinder

public AttributeFinder()
Default constructor.

Method Detail

getModules

public List getModules()
Returns the ordered list of AttributeFinderModules used by this class to find attribute values.

Returns:
a list of AttributeFinderModules

setModules

public void setModules(List modules)
Sets the ordered list of AttributeFinderModules used by this class to find attribute values. The ordering will be maintained.

Parameters:
modules - a list of AttributeFinderModules

findAttribute

public EvaluationResult findAttribute(URI attributeType,
                                      URI attributeId,
                                      URI issuer,
                                      URI subjectCategory,
                                      EvaluationCtx context,
                                      int designatorType)
Tries to find attribute values based on the given designator data. The result, if successful, will always contain a BagAttribute, even if only one value was found. If no values were found, but no other error occurred, an empty bag is returned.

Parameters:
attributeType - the datatype of the attributes to find
attributeId - the identifier of the attributes to find
issuer - the issuer of the attributes, or null if unspecified
subjectCategory - the category of the attribute if the designatorType is AttributeDesignator.SUBJECT_TARGET, otherwise null
context - the representation of the request data
designatorType - the type of designator as named by the *_TARGET fields in AttributeDesignator
Returns:
the result of attribute retrieval, which will be a bag of attributes or an error

findAttribute

public EvaluationResult findAttribute(String contextPath,
                                      Node namespaceNode,
                                      URI attributeType,
                                      EvaluationCtx context,
                                      String xpathVersion)
Tries to find attribute values based on the given selector data. The result, if successful, must always contain a BagAttribute, even if only one value was found. If no values were found, but no other error occurred, an empty bag is returned.

Parameters:
contextPath - the XPath expression to search against
namespaceNode - the DOM node defining namespace mappings to use, or null if mappings come from the context root
attributeType - the datatype of the attributes to find
context - the representation of the request data
xpathVersion - the XPath version to use
Returns:
the result of attribute retrieval, which will be a bag of attributes or an error


Copyright © 2009 JBoss, a division of Red Hat, Inc.. All Rights Reserved.