SecurityServer Class Reference

#include <SecurityServer.hh>

List of all members.

Public Member Functions

 SecurityServer (SocketServer &, AuditFile &, Handle)
 SecurityServer constructor.
 ~SecurityServer ()
 Removes existing SecurityLevel instances before deleting instance.
Handle federation () const
SocketgetSocketLink (FederateHandle theFederate, TransportType theType=RELIABLE) const
bool dominates (SecurityLevelID A, SecurityLevelID B) const
 Compares two security level ID.
bool canFederateAccessData (FederateHandle theFederate, SecurityLevelID theDataLevelID)
SecurityLevelID getLevelIDWithName (const char *theName)
 Returns the level ID associated with name otherwise creates a new one.
void registerFederate (const char *the_federate, SecurityLevelID the_level_id)
 Register a new federate with security level id.

Public Attributes

AuditFileaudit
 This part of the security server is linked to the RTIG Audit Server.

Private Member Functions

SecurityLevelID getLevel (const char *theFederate) const
 Returns the federate level id stored in a FederateLevelList.
void insertPublicLevel ()
 Insert the public level name and id into the list.

Private Attributes

Handle myFederation
SocketServerRTIG_SocketServer
SecurityLevelID LastLevelID
 Last Level ID attributed.
FederateLevelList FedLevelList


Detailed Description

This class is an interface at the Federation Level for the previous class, where the Federation Handle is constant for all calls. It also adds security features, like a mapping between Security Levels Names and Level IDs, and a method to check if a Federate has a valid clearance to access Data at a certain level.

Liste dynamique gerant la securite des donnees, en affectant des numeros aux differents niveaux de securite, des niveaux a chacun des federes, et en reglementant les acces aux donnees par les federes.

Definition at line 48 of file SecurityServer.hh.


Constructor & Destructor Documentation

SecurityServer ( SocketServer theRTIGServer,
AuditFile theAuditServer,
Handle  theFederation 
)

SecurityServer constructor.

Definition at line 112 of file SecurityServer.cc.

References SecurityServer::myFederation.

~SecurityServer (  ) 

Removes existing SecurityLevel instances before deleting instance.

Definition at line 126 of file SecurityServer.cc.


Member Function Documentation

Handle federation (  )  const [inline]

Socket * getSocketLink ( FederateHandle  theFederate,
TransportType  theType = RELIABLE 
) const

bool dominates ( SecurityLevelID  A,
SecurityLevelID  B 
) const

Compares two security level ID.

Definition at line 60 of file SecurityServer.cc.

References PublicLevelID.

Referenced by SecurityServer::canFederateAccessData(), ObjectClass::setSecurityLevelId(), and Interaction::setSecurityLevelId().

bool canFederateAccessData ( FederateHandle  theFederate,
SecurityLevelID  theDataLevelID 
)

Determines if federate can access to datas. 1- Get the socket of this federate 2- Check if it is a secure socket 3- If yes, retrieve federate principal name. 4- Retrieve Federate level

Definition at line 73 of file SecurityServer.cc.

References SecurityServer::dominates(), SecurityServer::getLevel(), SecureTCPSocket::getPeerName(), SecurityServer::getSocketLink(), and PublicLevelID.

Referenced by ObjectClassAttribute::checkFederateAccess(), ObjectClass::checkFederateAccess(), and Interaction::checkFederateAccess().

Here is the call graph for this function:

SecurityLevelID getLevelIDWithName ( const char *  theName  ) 

Returns the level ID associated with name otherwise creates a new one.

Definition at line 145 of file SecurityServer.cc.

References certi::D, certi::fedparser::end(), SecurityServer::insertPublicLevel(), SecurityServer::LastLevelID, MAX_SECURITYLEVELNAME, and pdDebug.

Referenced by RootObject::getSecurityLevelID().

Here is the call graph for this function:

void registerFederate ( const char *  the_federate,
SecurityLevelID  the_level_id 
)

Register a new federate with security level id.

Definition at line 191 of file SecurityServer.cc.

References FederateLevelList::addFederate(), and SecurityServer::FedLevelList.

Referenced by RootObject::registerFederate().

Here is the call graph for this function:

SecurityLevelID getLevel ( const char *  theFederate  )  const [private]

Returns the federate level id stored in a FederateLevelList.

Definition at line 137 of file SecurityServer.cc.

References SecurityServer::FedLevelList, and FederateLevelList::getLevel().

Referenced by SecurityServer::canFederateAccessData().

Here is the call graph for this function:

void insertPublicLevel (  )  [private]

Insert the public level name and id into the list.

Definition at line 176 of file SecurityServer.cc.

References SecurityServer::LastLevelID, PublicLevelID, and PublicLevelName.

Referenced by SecurityServer::getLevelIDWithName().


Member Data Documentation

This part of the security server is linked to the RTIG Audit Server.

Definition at line 55 of file SecurityServer.hh.

Handle myFederation [private]

Definition at line 75 of file SecurityServer.hh.

Referenced by SecurityServer::getSocketLink().

Last Level ID attributed.

Definition at line 77 of file SecurityServer.hh.

Referenced by SecurityServer::getLevelIDWithName(), and SecurityServer::insertPublicLevel().

Definition at line 78 of file SecurityServer.hh.

Referenced by SecurityServer::getLevel(), and SecurityServer::registerFederate().


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

Generated on Thu Apr 30 15:58:39 2009 for CERTIDeveloperDocumentation by doxygen 1.5.5