From 816a99518e8f22b404b95975a415ce0daff21f2a Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Wed, 7 Jan 2009 20:24:42 +0000 Subject: This is related to QPID-1558. The test case test_group_and_user_with_same_name covers the error condition in QPID-1545 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@732466 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/acl/AclReader.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'cpp/src/qpid/acl/AclReader.cpp') diff --git a/cpp/src/qpid/acl/AclReader.cpp b/cpp/src/qpid/acl/AclReader.cpp index c407339390..8f5e4f5b57 100644 --- a/cpp/src/qpid/acl/AclReader.cpp +++ b/cpp/src/qpid/acl/AclReader.cpp @@ -312,6 +312,7 @@ bool AclReader::processGroupLine(tokList& toks, const bool cont) { errorStream << ACL_FORMAT_ERR_LOG_PREFIX << "Name \"" << toks[i] << "\" contains illegal characters."; return false; } + if (!isValidUserName(toks[i])) return false; addName(toks[i], citr->second); } } else { @@ -330,6 +331,7 @@ bool AclReader::processGroupLine(tokList& toks, const bool cont) { errorStream << ACL_FORMAT_ERR_LOG_PREFIX << "Name \"" << toks[i] << "\" contains illegal characters."; return false; } + if (!isValidUserName(toks[i])) return false; addName(toks[i], citr->second); } } @@ -508,4 +510,14 @@ AclReader::nvPair AclReader::splitNameValuePair(const std::string& nvpString) { return nvPair(nvpString.substr(0, pos), nvpString.substr(pos+1)); } +// Returns true if a username has the name@realm format +bool AclReader::isValidUserName(const std::string& name){ + size_t pos = name.find('@'); + if ( pos == std::string::npos || pos == name.length() -1){ + errorStream << ACL_FORMAT_ERR_LOG_PREFIX << "Username '" << name << "' must contain a realm"; + return false; + } + return true; +} + }} // namespace qpid::acl -- cgit v1.2.1