ChspsSecurityEnforcer Class Reference

class ChspsSecurityEnforcer : public CBase
ChspsSecurityEnforcer performs all security related functions in HSPS. These functions are the following:
  • control user access on service request, and

  • adjust user access in queries.

Function are explained below:

CheckAccessRightsL() -------------------- CheckAccessRightsL() function is called by CPolicyServer when hspsThemeServer receives user request. Access rights are hard-coded here for S60 5.0, however, in later versions support for dynamic configuration of access rights must atken care. This would be appropriate to solve together TARM-policy implementation.

CheckQueryValidityL() ------------------- CheckQueryValidityL() function is called by hsps Theme Server's service handlers (ChspsInstallionHandler, ChspsMaintenanceHandler, and ChspsClientRequestHandler) for adjusting user request to match the access rights level that user actually have. This function is to be called immediately when actual ODT is known. In the istallation cases, ODT is known after manifest-file parsing. In the maintenanace cases, ODT is known immediately on query. In the theme usage cases, ODT is known when it application theme has retrieved from UI Definition Repository. For instance, if user is requesting the theme listing (message hspsGetListHeaders) with application UID set to 0 in query meaning that the query concerns all themes in storage. However, if user is not S60 Personalisation Application, the query must be restricted to the themes which belongs to the this particular client only. This solution follows the recilient server approach; when function is called, the user access rights are already checked by CheckUserAccessRightsL() function. In this sense, offering recilient service by adjusting user access insteads of denying it is reasonable resolution.

hspsThemeServer.exe
Since
S60 5.0

Inherits from

  • ChspsSecurityEnforcer

Constructor & Destructor Documentation

ChspsSecurityEnforcer(ChspsDefinitionRepository &, CRepository &)

ChspsSecurityEnforcer(ChspsDefinitionRepository &aDefRep,
CRepository &aCenRep
)[private]
ChspsSecurityEnforcer C++ default constructor
Since
S60 5.0

Parameters

ChspsDefinitionRepository & aDefRep
CRepository & aCenRep

~ChspsSecurityEnforcer()

~ChspsSecurityEnforcer()[virtual]

Destructor.

Member Functions Documentation

CheckAccessControlListL(TInt)

TBool CheckAccessControlListL(TIntaUid)[private]

CheckAccessControlListL Checks whether aUid found in access control list. returns ETrue if uid is found

Parameters

TInt aUid

CheckAccessRightsL(const RMessage2 &)

TBool CheckAccessRightsL(const RMessage2 &aMessage)
From MhspsSecurityService CheckAccessRightsL
Since
S60 5.0

Parameters

const RMessage2 & aMessageis the RMessage2 containing the client request data. Client's access rights in requesting a service of hsps Theme Server is to be checked.

CheckIfLicenseeDefaultExistsL(const ChspsODT &)

voidCheckIfLicenseeDefaultExistsL(const ChspsODT &aOdt)
From MhspsSecurityService Checks if Licensee Default theme exists. This method is used if a theme that is either User or Operator Default is installed.
Since
S60 5.0

Parameters

const ChspsODT & aOdt

CheckThemeLockingL(const ChspsODT &)

TBool CheckThemeLockingL(const ChspsODT &aOdt)

Parameters

const ChspsODT & aOdt

ConstructL()

voidConstructL()[private]
ConstructL. By default Symbian 2nd phase constructor is private.
Since
S60 5.0

HandleAccessControlListL(const TDesC8 &, RArray< TInt > &)

voidHandleAccessControlListL(const TDesC8 &aStrBuf,
RArray< TInt > &aArray
)[private]

HandleAccessControlListL Parse UIDs from descriptor buffer aStrBuf to array of intergers.

Parameters

const TDesC8 & aStrBuf
RArray< TInt > & aArray

NewL(ChspsDefinitionRepository &, CRepository &)

ChspsSecurityEnforcer *NewL(ChspsDefinitionRepository &aDefRep,
CRepository &aCenRep
)[static]

Parameters

ChspsDefinitionRepository & aDefRep
CRepository & aCenRep

Member Data Documentation

RArray< TInt > iAccessControlList

RArray< TInt >iAccessControlList[private]

CRepository & iCentralRepository

CRepository &iCentralRepository[private]

ChspsDefinitionRepository & iDefRep

ChspsDefinitionRepository &iDefRep[private]