shibboleth-3.5.0
shibsp::XMLApplication Class Reference
Inheritance diagram for shibsp::XMLApplication:
shibsp::Application shibsp::Remoted shibsp::DOMPropertySet shibsp::PropertySet shibsp::PropertySet

Public Member Functions

 XMLApplication (const ServiceProvider *, const ProtocolProvider *, xercesc::DOMElement *, bool deprecationSupport, const XMLApplication *base=nullptr, xercesc::DOMDocument *doc=nullptr)
 
const char * getHash () const
 Returns a unique hash for the Application. More...
 
opensaml::SAMLArtifact * generateSAML1Artifact (const opensaml::saml2md::EntityDescriptor *relyingParty) const
 
opensaml::saml2p::SAML2Artifact * generateSAML2Artifact (const opensaml::saml2md::EntityDescriptor *relyingParty) const
 
opensaml::saml2md::MetadataProvider * getMetadataProvider (bool required=true) const
 Returns a MetadataProvider for use with this Application. More...
 
xmltooling::TrustEngine * getTrustEngine (bool required=true) const
 Returns a TrustEngine for use with this Application. More...
 
AttributeExtractorgetAttributeExtractor () const
 Returns an AttributeExtractor for use with this Application. More...
 
AttributeFiltergetAttributeFilter () const
 Returns an AttributeFilter for use with this Application. More...
 
AttributeResolvergetAttributeResolver () const
 Returns an AttributeResolver for use with this Application. More...
 
xmltooling::CredentialResolver * getCredentialResolver () const
 Returns the CredentialResolver instance associated with this Application. More...
 
const PropertySetgetRelyingParty (const opensaml::saml2md::EntityDescriptor *provider) const
 Returns configuration properties governing security interactions with a peer. More...
 
const PropertySetgetRelyingParty (const XMLCh *entityID) const
 Returns configuration properties governing security interactions with a named peer. More...
 
const std::vector< const XMLCh * > * getAudiences () const
 
std::pair< bool, const char * > getString (const char *name, const char *ns=nullptr) const
 Returns a string-valued property. More...
 
std::pair< bool, const XMLCh * > getXMLString (const char *name, const char *ns=nullptr) const
 Returns a Unicode string-valued property. More...
 
std::string getNotificationURL (const char *resource, bool front, unsigned int index) const
 Returns the designated notification URL, or an empty string if no more locations are specified. More...
 
const std::vector< std::string > & getRemoteUserAttributeIds () const
 Returns an array of attribute IDs to use as a REMOTE_USER value, in order of preference. More...
 
void clearHeader (SPRequest &request, const char *rawname, const char *cginame) const
 Ensures no value exists for a request header, allowing for application-specific customization. More...
 
void setHeader (SPRequest &request, const char *name, const char *value) const
 Sets a value for a request header allowing for application-specific customization. More...
 
std::string getSecureHeader (const SPRequest &request, const char *name) const
 Returns a non-spoofable request header value allowing for application-specific customization. More...
 
const SessionInitiatorgetDefaultSessionInitiator () const
 Returns the default SessionInitiator when automatically requesting a session. More...
 
const SessionInitiatorgetSessionInitiatorById (const char *id) const
 Returns a SessionInitiator with a particular ID when automatically requesting a session. More...
 
const HandlergetDefaultAssertionConsumerService () const
 Returns the default AssertionConsumerService Handler for use in AuthnRequest messages. More...
 
const HandlergetAssertionConsumerServiceByIndex (unsigned short index) const
 Returns an AssertionConsumerService Handler with a particular index for use in AuthnRequest messages. More...
 
const HandlergetAssertionConsumerServiceByProtocol (const XMLCh *protocol, const char *binding=nullptr) const
 Returns an AssertionConsumerService Handler that supports a particular protocol "family" and optional binding. More...
 
const HandlergetHandler (const char *path) const
 Returns the Handler associated with a particular path/location. More...
 
void getHandlers (std::vector< const Handler *> &handlers) const
 Returns all registered Handlers. More...
 
void limitRedirect (const xmltooling::GenericRequest &request, const char *url) const
 Checks a proposed redirect URL against application-specific settings for legal redirects, such as same-host restrictions or allowed domains, and raises a SecurityPolicyException in the event of a violation. More...
 
void receive (DDF &in, std::ostream &out)
 Remoted classes implement this method to process incoming messages. More...
 
xercesc::DOMNodeFilter::FilterAction acceptNode (const xercesc::DOMNode *node) const
 
- Public Member Functions inherited from shibsp::Application
const ServiceProvidergetServiceProvider () const
 Returns the owning ServiceProvider instance. More...
 
virtual const char * getId () const
 Returns the Application's ID. More...
 
virtual std::string getCookieName (const char *prefix, time_t *lifetime=nullptr) const
 
virtual std::pair< std::string, const char * > getCookieNameProps (const char *prefix, time_t *lifetime=nullptr) const
 
virtual void clearAttributeHeaders (SPRequest &request) const
 Clears any headers that may be used to hold attributes after export. More...
 
- Public Member Functions inherited from shibsp::DOMPropertySet
const PropertySetgetParent () const
 Returns parent of this PropertySet, if any. More...
 
void setParent (const PropertySet *parent)
 Establishes a "parent" PropertySet to supply inherited settings. More...
 
std::pair< bool, bool > getBool (const char *name, const char *ns=nullptr) const
 Returns a boolean-valued property. More...
 
std::pair< bool, const char * > getString (const char *name, const char *ns=nullptr) const
 Returns a string-valued property. More...
 
std::pair< bool, const XMLCh * > getXMLString (const char *name, const char *ns=nullptr) const
 Returns a Unicode string-valued property. More...
 
std::pair< bool, unsigned int > getUnsignedInt (const char *name, const char *ns=nullptr) const
 Returns an unsigned integer-valued property. More...
 
std::pair< bool, int > getInt (const char *name, const char *ns=nullptr) const
 Returns an integer-valued property. More...
 
const PropertySetgetPropertySet (const char *name, const char *ns=shibspconstants::ASCII_SHIBSPCONFIG_NS) const
 Returns a nested property set. More...
 
const xercesc::DOMElement * getElement () const
 Returns a DOM element representing the property container, if any. More...
 
void load (const xercesc::DOMElement *e, xmltooling::logging::Category *log=nullptr, xercesc::DOMNodeFilter *filter=nullptr, const Remapper *remapper=nullptr, const xmltooling::QName *unsetter=nullptr)
 Loads the property set from a DOM element. More...
 

Additional Inherited Members

- Protected Member Functions inherited from shibsp::Application
 Application (const ServiceProvider *sp)
 Constructor. More...
 
- Protected Member Functions inherited from shibsp::DOMPropertySet
bool setProperty (const char *name, const char *val, const char *ns=nullptr)
 Post-load injection of a property, for use by subclasses. More...
 
- Protected Attributes inherited from shibsp::Application
const ServiceProviderm_sp
 Pointer to parent SP instance. More...
 
xmltooling::RWLock * m_lock
 Shared lock for manipulating application state. More...
 
std::vector< std::pair< std::string, std::string > > m_unsetHeaders
 Pairs of raw and normalized CGI header names to clear. More...
 

Member Function Documentation

◆ clearHeader()

void shibsp::XMLApplication::clearHeader ( SPRequest request,
const char *  rawname,
const char *  cginame 
) const
virtual

Ensures no value exists for a request header, allowing for application-specific customization.

Parameters
requestSP request to modify
rawnameraw name of header to clear
cginameCGI-equivalent name of header, MUST begin with "HTTP_".

Reimplemented from shibsp::Application.

◆ getAssertionConsumerServiceByIndex()

const Handler* shibsp::XMLApplication::getAssertionConsumerServiceByIndex ( unsigned short  index) const
virtual

Returns an AssertionConsumerService Handler with a particular index for use in AuthnRequest messages.

Parameters
indexan index unique to an application
Returns
the designated AssertionConsumerService, or nullptr

Implements shibsp::Application.

◆ getAssertionConsumerServiceByProtocol()

const Handler* shibsp::XMLApplication::getAssertionConsumerServiceByProtocol ( const XMLCh *  protocol,
const char *  binding = nullptr 
) const
virtual

Returns an AssertionConsumerService Handler that supports a particular protocol "family" and optional binding.

Parameters
protocola protocol identifier
bindinga binding identifier
Returns
a matching AssertionConsumerService, or nullptr

Implements shibsp::Application.

◆ getAttributeExtractor()

AttributeExtractor* shibsp::XMLApplication::getAttributeExtractor ( ) const
inlinevirtual

Returns an AttributeExtractor for use with this Application.

Returns
an AttributeExtractor, or nullptr

Implements shibsp::Application.

◆ getAttributeFilter()

AttributeFilter* shibsp::XMLApplication::getAttributeFilter ( ) const
inlinevirtual

Returns an AttributeFilter for use with this Application.

Returns
an AttributeFilter, or nullptr

Implements shibsp::Application.

◆ getAttributeResolver()

AttributeResolver* shibsp::XMLApplication::getAttributeResolver ( ) const
inlinevirtual

Returns an AttributeResolver for use with this Application.

Returns
an AttributeResolver, or nullptr

Implements shibsp::Application.

◆ getAudiences()

const std::vector<const XMLCh*>* shibsp::XMLApplication::getAudiences ( ) const
inlinevirtual
Deprecated:
Returns any additional audience values associated with this Application.
Returns
additional audience values associated with the Application, or nullptr

Implements shibsp::Application.

◆ getCredentialResolver()

xmltooling::CredentialResolver* shibsp::XMLApplication::getCredentialResolver ( ) const
inlinevirtual

Returns the CredentialResolver instance associated with this Application.

Returns
a CredentialResolver, or nullptr

Implements shibsp::Application.

◆ getDefaultAssertionConsumerService()

const Handler* shibsp::XMLApplication::getDefaultAssertionConsumerService ( ) const
virtual

Returns the default AssertionConsumerService Handler for use in AuthnRequest messages.

Returns
the default AssertionConsumerService, or nullptr

Implements shibsp::Application.

◆ getDefaultSessionInitiator()

const SessionInitiator* shibsp::XMLApplication::getDefaultSessionInitiator ( ) const
virtual

Returns the default SessionInitiator when automatically requesting a session.

Returns
the default SessionInitiator, or nullptr

Implements shibsp::Application.

◆ getHandler()

const Handler* shibsp::XMLApplication::getHandler ( const char *  path) const
virtual

Returns the Handler associated with a particular path/location.

Parameters
paththe PATH_INFO appended to the end of a base Handler location that invokes the Handler
Returns
the mapped Handler, or nullptr

Implements shibsp::Application.

◆ getHandlers()

void shibsp::XMLApplication::getHandlers ( std::vector< const Handler *> &  handlers) const
virtual

Returns all registered Handlers.

Parameters
handlersarray to populate

Implements shibsp::Application.

◆ getHash()

const char* shibsp::XMLApplication::getHash ( ) const
inlinevirtual

Returns a unique hash for the Application.

Returns
a value resulting from a computation over the Application's configuration

Implements shibsp::Application.

◆ getMetadataProvider()

opensaml::saml2md::MetadataProvider* shibsp::XMLApplication::getMetadataProvider ( bool  required = true) const
inlinevirtual

Returns a MetadataProvider for use with this Application.

Parameters
requiredtrue iff an exception should be thrown if no MetadataProvider is available
Returns
a MetadataProvider instance, or nullptr

Implements shibsp::Application.

◆ getNotificationURL()

std::string shibsp::XMLApplication::getNotificationURL ( const char *  request,
bool  front,
unsigned int  index 
) const
virtual

Returns the designated notification URL, or an empty string if no more locations are specified.

Parameters
requestrequested URL to use to fill in missing pieces of notification URL
fronttrue iff front channel notification is desired, false iff back channel is desired
indexzero-based index of URL to return
Returns
the designated URL, or an empty string

Implements shibsp::Application.

◆ getRelyingParty() [1/2]

const PropertySet* shibsp::XMLApplication::getRelyingParty ( const opensaml::saml2md::EntityDescriptor *  provider) const
virtual

Returns configuration properties governing security interactions with a peer.

Parameters
providera peer entity's metadata
Returns
the applicable PropertySet

Implements shibsp::Application.

◆ getRelyingParty() [2/2]

const PropertySet* shibsp::XMLApplication::getRelyingParty ( const XMLCh *  entityID) const
virtual

Returns configuration properties governing security interactions with a named peer.

Parameters
entityIDa peer name
Returns
the applicable PropertySet

Implements shibsp::Application.

◆ getRemoteUserAttributeIds()

const std::vector<std::string>& shibsp::XMLApplication::getRemoteUserAttributeIds ( ) const
inlinevirtual

Returns an array of attribute IDs to use as a REMOTE_USER value, in order of preference.

Returns
an array of attribute IDs, possibly empty

Implements shibsp::Application.

◆ getSecureHeader()

std::string shibsp::XMLApplication::getSecureHeader ( const SPRequest request,
const char *  name 
) const
virtual

Returns a non-spoofable request header value allowing for application-specific customization.

Parameters
requestSP request to access
namethe name of the secure header to return
Returns
the header's value, or an empty string

Reimplemented from shibsp::Application.

◆ getSessionInitiatorById()

const SessionInitiator* shibsp::XMLApplication::getSessionInitiatorById ( const char *  id) const
virtual

Returns a SessionInitiator with a particular ID when automatically requesting a session.

Parameters
idan identifier unique to the Application
Returns
the designated SessionInitiator, or nullptr

Implements shibsp::Application.

◆ getString()

std::pair<bool, const char*> shibsp::XMLApplication::getString ( const char *  name,
const char *  ns = nullptr 
) const
virtual

Returns a string-valued property.

Parameters
nameproperty name
nsproperty namespace, or nullptr
Returns
a pair consisting of a nullptr indicator and the property value iff the indicator is true

Implements shibsp::PropertySet.

◆ getTrustEngine()

xmltooling::TrustEngine* shibsp::XMLApplication::getTrustEngine ( bool  required = true) const
inlinevirtual

Returns a TrustEngine for use with this Application.

Parameters
requiredtrue iff an exception should be thrown if no TrustEngine is available
Returns
a TrustEngine instance, or nullptr

Implements shibsp::Application.

◆ getXMLString()

std::pair<bool, const XMLCh*> shibsp::XMLApplication::getXMLString ( const char *  name,
const char *  ns = nullptr 
) const
virtual

Returns a Unicode string-valued property.

Parameters
nameproperty name
nsproperty namespace, or nullptr
Returns
a pair consisting of a nullptr indicator and the property value iff the indicator is true

Implements shibsp::PropertySet.

◆ limitRedirect()

void shibsp::XMLApplication::limitRedirect ( const xmltooling::GenericRequest &  request,
const char *  url 
) const
virtual

Checks a proposed redirect URL against application-specific settings for legal redirects, such as same-host restrictions or allowed domains, and raises a SecurityPolicyException in the event of a violation.

Parameters
requestthe request leading to the redirect
urlan absolute URL to validate

Reimplemented from shibsp::Application.

◆ receive()

void shibsp::XMLApplication::receive ( DDF in,
std::ostream &  out 
)
virtual

Remoted classes implement this method to process incoming messages.

Parameters
inincoming DDF message
outstream to write outgoing DDF message to

Implements shibsp::Remoted.

◆ setHeader()

void shibsp::XMLApplication::setHeader ( SPRequest request,
const char *  name,
const char *  value 
) const
virtual

Sets a value for a request header allowing for application-specific customization.

Parameters
requestSP request to modify
namename of header to set
valuevalue to set

Reimplemented from shibsp::Application.


The documentation for this class was generated from the following file: