summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/include/qpid/messaging/Connection.h1
-rw-r--r--cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp4
-rw-r--r--cpp/src/qpid/client/amqp0_10/ConnectionImpl.h1
-rw-r--r--cpp/src/qpid/messaging/Connection.cpp5
-rw-r--r--cpp/src/qpid/messaging/ConnectionImpl.h1
-rw-r--r--cpp/src/tests/MessagingSessionTests.cpp6
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()