diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-05-19 13:27:28 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-05-19 13:27:28 +0000 |
commit | 7d1118edaf3d6e9dbbaae2a687bb49b65d6fffe4 (patch) | |
tree | 9823b4d8b62104b9eec5ae1a1718e76b27ff8363 /cpp/src/IceGrid/AdminSessionI.cpp | |
parent | Fix session activation demo for IceGrid changes (diff) | |
download | ice-7d1118edaf3d6e9dbbaae2a687bb49b65d6fffe4.tar.bz2 ice-7d1118edaf3d6e9dbbaae2a687bb49b65d6fffe4.tar.xz ice-7d1118edaf3d6e9dbbaae2a687bb49b65d6fffe4.zip |
Added implementation of SSL authentication methods.
Diffstat (limited to 'cpp/src/IceGrid/AdminSessionI.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdminSessionI.cpp | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/cpp/src/IceGrid/AdminSessionI.cpp b/cpp/src/IceGrid/AdminSessionI.cpp index fedb6f1cfc0..7d0f2e30424 100644 --- a/cpp/src/IceGrid/AdminSessionI.cpp +++ b/cpp/src/IceGrid/AdminSessionI.cpp @@ -11,15 +11,17 @@ #include <IceGrid/AdminSessionI.h> #include <IceGrid/Database.h> +#include <IceSSL/Plugin.h> + using namespace std; using namespace IceGrid; -AdminSessionI::AdminSessionI(const string& userId, +AdminSessionI::AdminSessionI(const string& id, const DatabasePtr& database, int timeout, const RegistryObserverTopicPtr& registryObserverTopic, const NodeObserverTopicPtr& nodeObserverTopic) : - BaseSessionI(userId, "admin", database, timeout), + BaseSessionI(id, "admin", database, timeout), _registryObserverTopic(registryObserverTopic), _nodeObserverTopic(nodeObserverTopic), _updating(false) @@ -120,7 +122,7 @@ AdminSessionI::startUpdate(const Ice::Current& current) throw ex; } - int serial = _database->lock(this, _userId); + int serial = _database->lock(this, _id); _updating = true; return serial; } @@ -257,16 +259,35 @@ AdminSessionManagerI::AdminSessionManagerI(const DatabasePtr& database, } Glacier2::SessionPrx -AdminSessionManagerI::create(const string& userId, const Glacier2::SessionControlPrx&, const Ice::Current& current) +AdminSessionManagerI::create(const string& id, const Glacier2::SessionControlPrx&, const Ice::Current& current) { - // - // TODO: XXX: Update the Glacier2 allowable table to allow access to this object! - // - return Glacier2::SessionPrx::uncheckedCast(current.adapter->addWithUUID(create(userId))); + return Glacier2::SessionPrx::uncheckedCast(current.adapter->addWithUUID(create(id))); } AdminSessionIPtr -AdminSessionManagerI::create(const string& userId) +AdminSessionManagerI::create(const string& id) { - return new AdminSessionI(userId, _database, _timeout, _registryObserverTopic, _nodeObserverTopic); + return new AdminSessionI(id, _database, _timeout, _registryObserverTopic, _nodeObserverTopic); } + +AdminSSLSessionManagerI::AdminSSLSessionManagerI(const DatabasePtr& database, + int sessionTimeout, + const RegistryObserverTopicPtr& regTopic, + const NodeObserverTopicPtr& nodeTopic) : + _database(database), + _timeout(sessionTimeout), + _registryObserverTopic(regTopic), + _nodeObserverTopic(nodeTopic) +{ +} + +Glacier2::SessionPrx +AdminSSLSessionManagerI::create(const Glacier2::SSLInfo& info, const Glacier2::SessionControlPrx&, + const Ice::Current& current) +{ + IceSSL::CertificatePtr cert = IceSSL::Certificate::decode(info.certs[0]); + string id = cert->getSubjectDN(); + AdminSessionIPtr session = new AdminSessionI(id, _database, _timeout, _registryObserverTopic, _nodeObserverTopic); + return Glacier2::SessionPrx::uncheckedCast(current.adapter->addWithUUID(session)); +} + |