#include <shibsp/attribute/Attribute.h>
Public Member Functions | |
const char * | getId () const |
Returns the Attribute identifier. | |
const std::vector< std::string > & | getAliases () const |
Returns all of the effective names for the Attribute. | |
std::vector< std::string > & | getAliases () |
Returns all of the effective names for the Attribute. | |
void | setCaseSensitive (bool caseSensitive) |
Sets whether case sensitivity should apply to basic value comparisons. | |
void | setInternal (bool internal) |
Sets whether the attribute should be exported for CGI use. | |
bool | isCaseSensitive () const |
Indicates whether case sensitivity should apply to basic value comparisons. | |
bool | isInternal () const |
Indicates whether the attribute should be exported for CGI use. | |
virtual size_t | valueCount () const |
Returns the number of values. | |
virtual const std::vector < std::string > & | getSerializedValues () const |
Returns serialized Attribute values encoded as UTF-8 strings. | |
virtual void | clearSerializedValues ()=0 |
Informs the Attribute that values have changed and any serializations must be cleared. | |
virtual const char * | getString (size_t index) const |
Gets the string equivalent of the value at the specified position (starting from zero). | |
virtual const char * | getScope (size_t index) const |
Gets the "scope" of the value at the specified position (starting from zero). | |
virtual void | removeValue (size_t index) |
Removes the value at the specified position (starting from zero). | |
virtual DDF | marshall () const |
Marshalls an Attribute for remoting. | |
typedef Attribute * | AttributeFactory (DDF &in) |
A function that unmarshalls remoted data into the proper Attribute subclass. | |
Static Public Member Functions | |
static Attribute * | unmarshall (DDF &in) |
Unmarshalls a remoted Attribute. | |
static void | registerFactory (const char *type, AttributeFactory *factory) |
Registers an AttributeFactory function for a given attribute "type". | |
static void | deregisterFactory (const char *type) |
Deregisters an AttributeFactory function for a given attribute "type". | |
static void | deregisterFactories () |
Clears the map of factories. | |
Protected Member Functions | |
Attribute (const std::vector< std::string > &ids) | |
Constructor. | |
Attribute (DDF &in) | |
Constructs based on a remoted Attribute. | |
Protected Attributes | |
std::vector< std::string > | m_serialized |
Maintains a copy of serialized attribute values, when possible. |
Resolved attributes are a neutral construct that represent both simple and complex attribute data structures that might be found in SAML assertions or obtained from other sources.
Attributes consist of an id/name that is locally unique (that is, unique to a configuration at any given point in time) and zero or more values. Values can be of any type or structure, but will generally be made available to applications only if a serialized string form exists. More complex values can be used with access control plugins and other components that understand them, however.
shibsp::Attribute::Attribute | ( | const std::vector< std::string > & | ids | ) | [protected] |
Constructor.
ids | array with primary identifier in first position, followed by any aliases |
shibsp::Attribute::Attribute | ( | DDF & | in | ) | [protected] |
const char* shibsp::Attribute::getId | ( | ) | const |
const std::vector<std::string>& shibsp::Attribute::getAliases | ( | ) | const |
Returns all of the effective names for the Attribute.
std::vector<std::string>& shibsp::Attribute::getAliases | ( | ) |
Returns all of the effective names for the Attribute.
void shibsp::Attribute::setCaseSensitive | ( | bool | caseSensitive | ) |
Sets whether case sensitivity should apply to basic value comparisons.
caseSensitive | true iff value comparisons should be case sensitive |
void shibsp::Attribute::setInternal | ( | bool | internal | ) |
Sets whether the attribute should be exported for CGI use.
internal | true iff the attribute should NOT be exported |
bool shibsp::Attribute::isCaseSensitive | ( | ) | const |
Indicates whether case sensitivity should apply to basic value comparisons.
bool shibsp::Attribute::isInternal | ( | ) | const |
Indicates whether the attribute should be exported for CGI use.
virtual size_t shibsp::Attribute::valueCount | ( | ) | const [virtual] |
Returns the number of values.
Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.
virtual const std::vector<std::string>& shibsp::Attribute::getSerializedValues | ( | ) | const [virtual] |
Returns serialized Attribute values encoded as UTF-8 strings.
Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.
virtual const char* shibsp::Attribute::getString | ( | size_t | index | ) | const [virtual] |
Gets the string equivalent of the value at the specified position (starting from zero).
index | position of value |
Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.
virtual const char* shibsp::Attribute::getScope | ( | size_t | index | ) | const [virtual] |
Gets the "scope" of the value at the specified position (starting from zero).
index | position of value |
Reimplemented in shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, and shibsp::ScopedAttribute.
virtual void shibsp::Attribute::removeValue | ( | size_t | index | ) | [virtual] |
Removes the value at the specified position (starting from zero).
index | position of value to remove |
Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, and shibsp::XMLAttribute.
virtual DDF shibsp::Attribute::marshall | ( | ) | const [virtual] |
Marshalls an Attribute for remoting.
This allows Attribute objects to be communicated across process boundaries without excess XML parsing. The DDF returned must be a struct containing a single list member named with the Attribute's "id". The name of the struct should contain the registered name of the Attribute implementation.
Reimplemented in shibsp::BinaryAttribute, shibsp::ExtensibleAttribute, shibsp::NameIDAttribute, shibsp::ScopedAttribute, shibsp::SimpleAttribute, and shibsp::XMLAttribute.
A function that unmarshalls remoted data into the proper Attribute subclass.
static void shibsp::Attribute::registerFactory | ( | const char * | type, | |
AttributeFactory * | factory | |||
) | [static] |
Registers an AttributeFactory function for a given attribute "type".
type | string used at the root of remoted Attribute structures | |
factory | factory function |
static void shibsp::Attribute::deregisterFactory | ( | const char * | type | ) | [static] |
Deregisters an AttributeFactory function for a given attribute "type".
type | string used at the root of remoted Attribute structures |
std::vector<std::string> shibsp::Attribute::m_serialized [mutable, protected] |
Maintains a copy of serialized attribute values, when possible.
Implementations should maintain the array when values are added or removed.