RequestLinter Class Reference

#include <RequestLinter.h>

Inheritance diagram for RequestLinter:

AuthPlugin Plugin

List of all members.


Detailed Description

The purpose of this auth plugin is to remove from a request all the elements (headers, parameters, .

..) that should not be presented to the request target.

The logic of this plugin is only executed when bSpiralingRequest == false so that the unwanted elements only get removed after the request has fininshed spiraling and is about to be sent towards the request target.

The first application of this plugin is remove the P-Asserted-Identity to address XECS-2233 (Caller ID is not displayed on the Gateway)

Public Member Functions

virtual ~RequestLinter ()
 destructor
virtual AuthResult authorizeAndModify (const UtlString &id, const Url &requestUri, RouteState &routeState, const UtlString &method, AuthResult priorResult, SipMessage &request, bool bSpiralingRequest, UtlString &reason)
 The RequestLinter plug-in always returns AuthResult::CONTINUE.
virtual void readConfig (OsConfigDb &configDb)
 Read (or re-read) the authorization rules.
virtual void announceAssociatedSipRouter (SipRouter *sipRouter)
 Used to announce the SIP Router instance that is logically associated with this Auth Plugin. Plugins that need to interact with their associated SIP Router can override this method and save the passed pointer for later use.

Private Member Functions

bool removeOurPAssertedIdentityHeader (SipMessage &request)
 Removes P-Asserted-Identity headers matching our domain.
 RequestLinter (const UtlString &instanceName)
 Constructor - private so that only the factory can call it.

Private Attributes

SipRoutermpSipRouter
 stores pointer to owning SipRouter.

Friends

class RequestLinterTest
AuthPlugingetAuthPlugin (const UtlString &name)
 Factory used by PluginHooks to dynamically link the plugin instance.


Constructor & Destructor Documentation

~RequestLinter (  )  [virtual]

destructor

RequestLinter ( const UtlString instanceName  )  [private]

Constructor - private so that only the factory can call it.

constructor

Parameters:
instanceName  the configured name for this plugin instance


Member Function Documentation

AuthPlugin::AuthResult authorizeAndModify ( const UtlString id,
const Url requestUri,
RouteState routeState,
const UtlString method,
AuthResult  priorResult,
SipMessage request,
bool  bSpiralingRequest,
UtlString reason 
) [virtual]

The RequestLinter plug-in always returns AuthResult::CONTINUE.

Parameters:
id  The authenticated identity of the request originator, if any (the null string if not). This is in the form of a SIP uri identity value as used in the credentials database (user) without the scheme or any parameters.
requestUri  parsed target Uri
routeState  the state for this request.
method  the request method
priorResult  results from earlier plugins.
request  see AuthPlugin regarding modifying
bSpiralingRequest  request spiraling indication
reason  rejection reason

Implements AuthPlugin.

void readConfig ( OsConfigDb configDb  )  [virtual]

Read (or re-read) the authorization rules.

Note:
The parent service may call the readConfig method at any time to indicate that the configuration may have changed. The plugin should reinitialize itself based on the configuration that exists when this is called. The fact that it is a subhash means that whatever prefix is used to identify the plugin (see PluginHooks) has been removed (see the examples in PluginHooks::readConfig).
Parameters:
configDb  a subhash of the individual configuration parameters for this instance of this plugin.

Implements AuthPlugin.

void announceAssociatedSipRouter ( SipRouter sipRouter  )  [virtual]

Used to announce the SIP Router instance that is logically associated with this Auth Plugin. Plugins that need to interact with their associated SIP Router can override this method and save the passed pointer for later use.

Reimplemented from AuthPlugin.

bool removeOurPAssertedIdentityHeader ( SipMessage request  )  [private]

Removes P-Asserted-Identity headers matching our domain.


Friends And Related Function Documentation

friend class RequestLinterTest [friend]

AuthPlugin* getAuthPlugin ( const UtlString name  )  [friend]

Factory used by PluginHooks to dynamically link the plugin instance.


Member Data Documentation

SipRouter* mpSipRouter [private]

stores pointer to owning SipRouter.


Online Library Docs

sipXecs home page

Version 4.2.1-018930 2010-07-31T01:50:17 build33 abuild