SubscriptionAuth Class Reference

#include <SubscriptionAuth.h>

Inheritance diagram for SubscriptionAuth:

AuthPlugin Plugin

List of all members.


Detailed Description

Plug-in responsible for forcing the authentication of SUBSCRIBE requests for event packages that require authentication, which are listed in the PACKAGES_REQUIRING_AUTHENTICATION configuration value found in the sipXproxy-config configuration file. The creation of this plug-in was prompted by XECS-1606.

Note that this plug-in will return CONTINUE for all SUBSCRIBE requests that do not need to be challenged by this plug-in. Such a behavior enables other Auth plug-ins in the chain to impose the challenge of such SUBSCRIBE requests if they wish to do so based on their authentication policies by returning DENY. This is an AuthRules plugin called by SipRouter.

Public Member Functions

virtual ~SubscriptionAuth ()
 destructor
virtual AuthResult authorizeAndModify (const UtlString &id, const Url &requestUri, RouteState &routeState, const UtlString &method, AuthResult priorResult, SipMessage &request, bool bSpiralingRequest, UtlString &reason)
 Enforces authentication of SUBSCRIBE requests.
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

UtlBoolean isTargetExemptedFromAuthentication (const UtlString &targetUser) const
 determines whether or not the target of the request is exempted from authentication based on the user part of the R-URI and the configured list of exempted users.
 SubscriptionAuth (const UtlString &instanceName)
 Constructor - private so that only the factory can call it.

Private Attributes

SipRoutermpSipRouter
UtlSList mEventPackagesRequiringAuthentication
UtlSList mTargetsExemptedFromAuthentication

Static Private Attributes

static const char * EventsRequiringAuthenticationKey = "PACKAGES_REQUIRING_AUTHENTICATION"
static const char * TargetsExemptedFromAuthenticationKey = "TARGETS_EXEMPTED_FROM_AUTHENTICATION"

Friends

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


Constructor & Destructor Documentation

~SubscriptionAuth (  )  [virtual]

destructor

SubscriptionAuth ( 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]

Enforces authentication of SUBSCRIBE requests.

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.

UtlBoolean isTargetExemptedFromAuthentication ( const UtlString targetUser  )  const [private]

determines whether or not the target of the request is exempted from authentication based on the user part of the R-URI and the configured list of exempted users.


Friends And Related Function Documentation

friend class SubscriptionAuthTest [friend]

AuthPlugin* getAuthPlugin ( const UtlString name  )  [friend]

Factory used by PluginHooks to dynamically link the plugin instance.


Member Data Documentation

const char * EventsRequiringAuthenticationKey = "PACKAGES_REQUIRING_AUTHENTICATION" [static, private]

const char * TargetsExemptedFromAuthenticationKey = "TARGETS_EXEMPTED_FROM_AUTHENTICATION" [static, private]

SipRouter* mpSipRouter [private]


Online Library Docs

sipXecs home page

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