shibboleth-3.5.0
shibsp::AbstractSPRequest Class Reference

Abstract base for SPRequest implementations. More...

#include <shibsp/AbstractSPRequest.h>

Inheritance diagram for shibsp::AbstractSPRequest:
shibsp::SPRequest

Public Member Functions

const ServiceProvidergetServiceProvider () const
 Returns the locked ServiceProvider processing the request. More...
 
RequestMapper::Settings getRequestSettings () const
 Returns RequestMapper Settings associated with the request, guaranteed to be valid for the request's duration. More...
 
const ApplicationgetApplication () const
 Returns the Application governing the request. More...
 
SessiongetSession (bool checkTimeout=true, bool ignoreAddress=false, bool cache=true)
 Returns a locked Session associated with the request. More...
 
const char * getRequestURI () const
 
const char * getRequestURL () const
 
std::string getRemoteAddr () const
 
const char * getParameter (const char *name) const
 
std::vector< const char * >::size_type getParameters (const char *name, std::vector< const char *> &values) const
 
const char * getHandlerURL (const char *resource=nullptr) const
 Returns the effective base Handler URL for a resource, or the current request URL. More...
 
std::string getSecureHeader (const char *name) const
 Returns a non-spoofable request header value, if possible. More...
 
const char * getCookie (const char *name) const
 
void setAuthType (const char *authtype)
 Establish AUTH_TYPE for request. More...
 
void setCookie (const char *name, const char *value, time_t expires=0, samesite_t sameSite=SAMESITE_ABSENT)
 
void log (SPLogLevel level, const std::string &msg) const
 Log to native server environment. More...
 
bool isPriorityEnabled (SPLogLevel level) const
 Test logging level. More...
 
- Public Member Functions inherited from shibsp::SPRequest
virtual void clearHeader (const char *rawname, const char *cginame)=0
 Ensures no value exists for a request header. More...
 
virtual void setHeader (const char *name, const char *value)=0
 Sets a value for a request header. More...
 
virtual void setRemoteUser (const char *user)=0
 Establish REMOTE_USER identity in request. More...
 
virtual long returnDecline ()=0
 Indicates that processing was declined, meaning no action is required during this phase of processing. More...
 
virtual long returnOK ()=0
 Indicates that processing was completed. More...
 

Protected Member Functions

 AbstractSPRequest (const char *category)
 Constructor. More...
 
void setRequestURI (const char *uri)
 Stores a normalized request URI to ensure it contains no %-encoded characters or other undesirable artifacts. More...
 

Additional Inherited Members

- Public Types inherited from shibsp::SPRequest
enum  SPLogLevel {
  SPDebug, SPInfo, SPWarn, SPError,
  SPCrit
}
 Portable logging levels. More...
 

Detailed Description

Abstract base for SPRequest implementations.

Constructor & Destructor Documentation

◆ AbstractSPRequest()

shibsp::AbstractSPRequest::AbstractSPRequest ( const char *  category)
protected

Constructor.

Parameters
categorylogging category to use

Member Function Documentation

◆ getApplication()

const Application& shibsp::AbstractSPRequest::getApplication ( ) const
virtual

Returns the Application governing the request.

Returns
reference to Application

Implements shibsp::SPRequest.

◆ getHandlerURL()

const char* shibsp::AbstractSPRequest::getHandlerURL ( const char *  resource = nullptr) const
virtual

Returns the effective base Handler URL for a resource, or the current request URL.

Parameters
resourceresource URL to compute handler for
Returns
base location of handler

Implements shibsp::SPRequest.

◆ getRequestSettings()

RequestMapper::Settings shibsp::AbstractSPRequest::getRequestSettings ( ) const
virtual

Returns RequestMapper Settings associated with the request, guaranteed to be valid for the request's duration.

Returns
copy of settings

Implements shibsp::SPRequest.

◆ getSecureHeader()

std::string shibsp::AbstractSPRequest::getSecureHeader ( const char *  name) const
virtual

Returns a non-spoofable request header value, if possible.

Platforms that support environment export can redirect header lookups by overriding this method.

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

Implements shibsp::SPRequest.

◆ getServiceProvider()

const ServiceProvider& shibsp::AbstractSPRequest::getServiceProvider ( ) const
virtual

Returns the locked ServiceProvider processing the request.

Returns
reference to ServiceProvider

Implements shibsp::SPRequest.

◆ getSession()

Session* shibsp::AbstractSPRequest::getSession ( bool  checkTimeout = true,
bool  ignoreAddress = false,
bool  cache = true 
)
virtual

Returns a locked Session associated with the request.

Parameters
checkTimeouttrue iff the last-used timestamp should be updated and any timeout policy enforced
ignoreAddresstrue iff all address checking should be ignored, regardless of policy
cachetrue iff the request should hold the Session lock itself and unlock during cleanup
Returns
pointer to Session, or nullptr

Implements shibsp::SPRequest.

◆ isPriorityEnabled()

bool shibsp::AbstractSPRequest::isPriorityEnabled ( SPLogLevel  level) const
virtual

Test logging level.

Parameters
levellogging level
Returns
true iff logging level is enabled

Implements shibsp::SPRequest.

◆ log()

void shibsp::AbstractSPRequest::log ( SPLogLevel  level,
const std::string &  msg 
) const
virtual

Log to native server environment.

Parameters
levellogging level
msgmessage to log

Implements shibsp::SPRequest.

◆ setAuthType()

void shibsp::AbstractSPRequest::setAuthType ( const char *  authtype)
virtual

Establish AUTH_TYPE for request.

Parameters
authtypeAUTH_TYPE value to set or nullptr to clear

Implements shibsp::SPRequest.

◆ setRequestURI()

void shibsp::AbstractSPRequest::setRequestURI ( const char *  uri)
protected

Stores a normalized request URI to ensure it contains no %-encoded characters or other undesirable artifacts.

Parameters
urithe request URI as obtained from the client

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