diff options
| author | Ted Ross <tross@apache.org> | 2010-11-09 21:15:03 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2010-11-09 21:15:03 +0000 |
| commit | 4870a01b7976362d3836ba0d56291f01b7f2e6af (patch) | |
| tree | 921b002956ec18c7fe5602b0641e9dd8395b7f98 /cpp/include | |
| parent | d282da7e6f515ded59a76b4dfbc2bedab8f7f6d7 (diff) | |
| download | qpid-python-4870a01b7976362d3836ba0d56291f01b7f2e6af.tar.gz | |
QPID-2934 Feature to pass the authenticated userId to QMF agent method handlers for authorization
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1033232 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/include')
| -rw-r--r-- | cpp/include/qpid/management/Manageable.h | 5 | ||||
| -rw-r--r-- | cpp/include/qpid/management/ManagementObject.h | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/cpp/include/qpid/management/Manageable.h b/cpp/include/qpid/management/Manageable.h index 7a72cc1592..1e5cd8bc42 100644 --- a/cpp/include/qpid/management/Manageable.h +++ b/cpp/include/qpid/management/Manageable.h @@ -63,6 +63,11 @@ class QPID_COMMON_EXTERN Manageable // method being called and must be down-cast to the appropriate sub class // before use. virtual status_t ManagementMethod(uint32_t methodId, Args& args, std::string& text); + + // This optional method can be overridden to allow the agent application to + // authorize method invocations. Return true iff the authenticated user identified + // in userId us authorized to execute the method. + virtual bool AuthorizeMethod(uint32_t methodId, Args& args, const std::string& userId); }; inline Manageable::~Manageable(void) {} diff --git a/cpp/include/qpid/management/ManagementObject.h b/cpp/include/qpid/management/ManagementObject.h index 59a7f00603..dec5a63ee9 100644 --- a/cpp/include/qpid/management/ManagementObject.h +++ b/cpp/include/qpid/management/ManagementObject.h @@ -175,7 +175,8 @@ protected: virtual void mapDecodeValues(const types::Variant::Map& map) = 0; virtual void doMethod(std::string& methodName, const types::Variant::Map& inMap, - types::Variant::Map& outMap) = 0; + types::Variant::Map& outMap, + const std::string& userId) = 0; QPID_COMMON_EXTERN void writeTimestamps(types::Variant::Map& map) const; QPID_COMMON_EXTERN void readTimestamps(const types::Variant::Map& buf); @@ -187,7 +188,7 @@ protected: virtual void readProperties(const std::string&) {} virtual void writeProperties(std::string&) const {} virtual void writeStatistics(std::string&, bool = false) {} - virtual void doMethod(std::string&, const std::string&, std::string&) {} + virtual void doMethod(std::string&, const std::string&, std::string&, const std::string&) {} QPID_COMMON_EXTERN virtual void setReference(ObjectId objectId); |
