diff options
author | Gordon Sim <gsim@apache.org> | 2010-06-30 22:22:50 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2010-06-30 22:22:50 +0000 |
commit | 35e26207bc5db7947c0d1a1abb05c4aba5c0e463 (patch) | |
tree | 9b3824c51f08a29e9cc509c20f1bee9c030300d3 /cpp/src | |
parent | e5b931c37b591ed19fa5a63afd2d05d6f1fca13e (diff) | |
download | qpid-python-35e26207bc5db7947c0d1a1abb05c4aba5c0e463.tar.gz |
QPID-664: expose authenticated username for connection
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@959461 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp | 4 | ||||
-rw-r--r-- | cpp/src/qpid/client/amqp0_10/ConnectionImpl.h | 1 | ||||
-rw-r--r-- | cpp/src/qpid/messaging/Connection.cpp | 5 | ||||
-rw-r--r-- | cpp/src/qpid/messaging/ConnectionImpl.h | 1 | ||||
-rw-r--r-- | cpp/src/tests/MessagingSessionTests.cpp | 6 |
5 files changed, 16 insertions, 1 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp b/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp index f93df90d7e..2fe55cc035 100644 --- a/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp @@ -325,5 +325,9 @@ bool ConnectionImpl::backoff() return false; } } +std::string ConnectionImpl::getAuthenticatedUsername() +{ + return connection.getNegotiatedSettings().username; +} }}} // namespace qpid::client::amqp0_10 diff --git a/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h b/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h index 904cef750c..8467376725 100644 --- a/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h +++ b/cpp/src/qpid/client/amqp0_10/ConnectionImpl.h @@ -51,6 +51,7 @@ class ConnectionImpl : public qpid::messaging::ConnectionImpl void detach(); void setOption(const std::string& name, const qpid::types::Variant& value); bool backoff(); + std::string getAuthenticatedUsername(); private: typedef std::map<std::string, qpid::messaging::Session> Sessions; diff --git a/cpp/src/qpid/messaging/Connection.cpp b/cpp/src/qpid/messaging/Connection.cpp index 2bd5ba96f9..e132b6e899 100644 --- a/cpp/src/qpid/messaging/Connection.cpp +++ b/cpp/src/qpid/messaging/Connection.cpp @@ -74,5 +74,8 @@ void Connection::setOption(const std::string& name, const Variant& value) { impl->setOption(name, value); } - +std::string Connection::getAuthenticatedUsername() +{ + return impl->getAuthenticatedUsername(); +} }} // namespace qpid::messaging diff --git a/cpp/src/qpid/messaging/ConnectionImpl.h b/cpp/src/qpid/messaging/ConnectionImpl.h index 23ab5272d0..fb45ee5e8b 100644 --- a/cpp/src/qpid/messaging/ConnectionImpl.h +++ b/cpp/src/qpid/messaging/ConnectionImpl.h @@ -44,6 +44,7 @@ class ConnectionImpl : public virtual qpid::RefCounted virtual Session newSession(bool transactional, const std::string& name) = 0; virtual Session getSession(const std::string& name) const = 0; virtual void setOption(const std::string& name, const qpid::types::Variant& value) = 0; + virtual std::string getAuthenticatedUsername() = 0; private: }; }} // namespace qpid::messaging diff --git a/cpp/src/tests/MessagingSessionTests.cpp b/cpp/src/tests/MessagingSessionTests.cpp index c22cb4bf73..ce1d885e46 100644 --- a/cpp/src/tests/MessagingSessionTests.cpp +++ b/cpp/src/tests/MessagingSessionTests.cpp @@ -769,6 +769,12 @@ QPID_AUTO_TEST_CASE(testExclusiveSubscriber) } catch (const MessagingException& e) {} } +QPID_AUTO_TEST_CASE(testAuthenticatedUsername) +{ + MessagingFixture fix; + BOOST_CHECK_EQUAL(fix.connection.getAuthenticatedUsername(), std::string("anonymous")); +} + QPID_AUTO_TEST_SUITE_END() |