#include <SecurityServer.hh>
Public Member Functions | |
| SecurityServer (SocketServer &, AuditFile &, Handle) | |
| SecurityServer constructor. | |
| ~SecurityServer () | |
| Removes existing SecurityLevel instances before deleting instance. | |
| Handle | federation () const |
| Socket * | getSocketLink (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 | |
| AuditFile & | audit |
| 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 |
| SocketServer & | RTIG_SocketServer |
| SecurityLevelID | LastLevelID |
| Last Level ID attributed. | |
| FederateLevelList | FedLevelList |
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.
| 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.
| Handle federation | ( | ) | const [inline] |
Definition at line 57 of file SecurityServer.hh.
Referenced by ObjectClass::attributeOwnershipAcquisition(), ObjectClass::attributeOwnershipAcquisitionIfAvailable(), ObjectClass::cancelAttributeOwnershipAcquisition(), ObjectClass::deleteInstance(), ObjectClass::negotiatedAttributeOwnershipDivestiture(), ObjectSet::queryAttributeOwnership(), ObjectClass::registerObjectInstance(), ObjectClass::sendDiscoverMessages(), Interaction::sendInteraction(), ObjectClass::sendToOwners(), ObjectClass::unconditionalAttributeOwnershipDivestiture(), and ObjectClass::updateAttributeValues().
| Socket * getSocketLink | ( | FederateHandle | theFederate, | |
| TransportType | theType = RELIABLE | |||
| ) | const |
Each call to this method is passed to the RTIG's SocketServer, by including our Federation Handle.
Definition at line 45 of file SecurityServer.cc.
References SocketServer::getSocketLink(), SecurityServer::myFederation, and SecurityServer::RTIG_SocketServer.
Referenced by Federation::broadcastAnyMessage(), Federation::broadcastSomeMessage(), SecurityServer::canFederateAccessData(), Federation::requestFederationRestore(), Federation::requestObjectOwner(), ObjectClass::sendDiscoverMessages(), ObjectClassBroadcastList::sendPendingDOMessage(), InteractionBroadcastList::sendPendingMessage(), ObjectClassBroadcastList::sendPendingRAVMessage(), ObjectSet::sendToFederate(), and ObjectClass::sendToFederate().

| 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().

| 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().

| 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().

| 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().

| 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().
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 74 of file SecurityServer.hh.
Referenced by SecurityServer::getSocketLink(), and SecurityServer::SecurityServer().
SocketServer& RTIG_SocketServer [private] |
SecurityLevelID LastLevelID [private] |
Last Level ID attributed.
Definition at line 77 of file SecurityServer.hh.
Referenced by SecurityServer::getLevelIDWithName(), and SecurityServer::insertPublicLevel().
FederateLevelList FedLevelList [private] |
Definition at line 78 of file SecurityServer.hh.
Referenced by SecurityServer::getLevel(), and SecurityServer::registerFederate().
1.5.5