rpc: Generate auth cookie in hex instead of base64
Base64 contains '/', and the '/' character in credentials is problematic for AuthServiceProxy which represents the RPC endpoint as an URI with user and password embedded. Closes #8399.
This commit is contained in:
parent
6faffb8a83
commit
1c80386bce
1 changed files with 4 additions and 3 deletions
|
@ -77,9 +77,10 @@ boost::filesystem::path GetAuthCookieFile()
|
||||||
|
|
||||||
bool GenerateAuthCookie(std::string *cookie_out)
|
bool GenerateAuthCookie(std::string *cookie_out)
|
||||||
{
|
{
|
||||||
unsigned char rand_pwd[32];
|
const size_t COOKIE_SIZE = 32;
|
||||||
GetRandBytes(rand_pwd, 32);
|
unsigned char rand_pwd[COOKIE_SIZE];
|
||||||
std::string cookie = COOKIEAUTH_USER + ":" + EncodeBase64(&rand_pwd[0],32);
|
GetRandBytes(rand_pwd, COOKIE_SIZE);
|
||||||
|
std::string cookie = COOKIEAUTH_USER + ":" + HexStr(rand_pwd, rand_pwd+COOKIE_SIZE);
|
||||||
|
|
||||||
/** the umask determines what permissions are used to create this file -
|
/** the umask determines what permissions are used to create this file -
|
||||||
* these are set to 077 in init.cpp unless overridden with -sysperms.
|
* these are set to 077 in init.cpp unless overridden with -sysperms.
|
||||||
|
|
Loading…
Reference in a new issue