diff options
-rw-r--r-- | cpp/include/qpid/messaging/Connection.h | 1 | ||||
-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 |
6 files changed, 17 insertions, 1 deletions
diff --git a/cpp/include/qpid/messaging/Connection.h b/cpp/include/qpid/messaging/Connection.h index 5af4628fa8..6f2cd54b4b 100644 --- a/cpp/include/qpid/messaging/Connection.h +++ b/cpp/include/qpid/messaging/Connection.h @@ -98,6 +98,7 @@ class Connection : public qpid::messaging::Handle<ConnectionImpl> QPID_MESSAGING_EXTERN Session createSession(const std::string& name = std::string()); QPID_MESSAGING_EXTERN Session getSession(const std::string& name) const; + QPID_MESSAGING_EXTERN std::string getAuthenticatedUsername(); private: friend class qpid::messaging::PrivateImplRef<Connection>; 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() |