From 015d09993d96e4004b2bba1a936f0e4195815250 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Fri, 18 Jan 2013 03:01:54 -0800 Subject: [PATCH] Fix HTTPAuthorized. It's currently not used. --- src/cpp/ripple/rpc.cpp | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/cpp/ripple/rpc.cpp b/src/cpp/ripple/rpc.cpp index 5b80d3e658..de811eec7e 100644 --- a/src/cpp/ripple/rpc.cpp +++ b/src/cpp/ripple/rpc.cpp @@ -204,21 +204,31 @@ std::string DecodeBase64(std::string s) return result; } -/* -bool HTTPAuthorized(map& mapHeaders) -{ +void HTTPAuthorized(std::map& mapHeaders, bool& user, bool& admin) +{ // This is currently not used std::string strAuth = mapHeaders["authorization"]; if (strAuth.substr(0,6) != "Basic ") - return false; - std::string strUserPass64 = strAuth.substr(6); boost::trim(strUserPass64); + { + admin = theConfig.RPC_ADMIN_USER.empty() && theConfig.RPC_ADMIN_PASSWORD.empty(); + user = theConfig.RPC_USER.empty() && theConfig.RPC_PASSWORD.empty(); + } + std::string strUserPass64 = strAuth.substr(6); + boost::trim(strUserPass64); std::string strUserPass = DecodeBase64(strUserPass64); std::string::size_type nColon = strUserPass.find(":"); if (nColon == std::string::npos) - return false; - std::string strUser = strUserPass.substr(0, nColon); - std::string strPassword = strUserPass.substr(nColon+1); - return (strUser == mapArgs["-rpcuser"] && strPassword == mapArgs["-rpcpassword"]); -}*/ + { + admin = false; + user = false; + } + else + { + std::string strUser = strUserPass.substr(0, nColon); + std::string strPassword = strUserPass.substr(nColon+1); + admin = (strUser == theConfig.RPC_ADMIN_USER) && (strPassword == theConfig.RPC_ADMIN_PASSWORD); + user = (strUser == theConfig.RPC_USER) && (strPassword == theConfig.RPC_PASSWORD); + } +} // // JSON-RPC protocol. Bitcoin speaks version 1.0 for maximum compatibility,