8000 Fixed bad token generation when username is empty. (#6971) · strogo/arangodb@da99601 · GitHub
[go: up one dir, main page]

Skip to content

Commit da99601

Browse files
Lars Maierjsteemann
authored andcommitted
Fixed bad token generation when username is empty. (arangodb#6971)
1 parent 80b5c78 commit da99601

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

arangod/GeneralServer/RestHandler.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,21 @@ bool RestHandler::forwardRequest() {
160160
}
161161
auto auth = AuthenticationFeature::instance();
162162
if (auth != nullptr && auth->isActive()) {
163-
VPackBuilder builder;
164-
{
165-
VPackObjectBuilder payload{&builder};
166-
payload->add("preferred_username", VPackValue(_request->user()));
163+
164+
// when in superuser mode, username is empty
165+
// in this case ClusterComm will add the default superuser token
166+
std::string const& username = _request->user();
167+
if (!username.empty()) {
168+
169+
VPackBuilder builder;
170+
{
171+
VPackObjectBuilder payload{&builder};
172+
payload->add("preferred_username", VPackValue(username));
173+
}
174+
VPackSlice slice = builder.slice();
175+
headers.emplace(StaticStrings::Authorization,
176+
"bearer " + auth->tokenCache()->generateJwt(slice));
167177
}
168-
VPackSlice slice = builder.slice();
169-
headers.emplace(StaticStrings::Authorization,
170-
"bearer " + auth->tokenCache()->generateJwt(slice));
171178
}
172179

173180
auto& values = _request->values();

0 commit comments

Comments
 (0)
0