-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add global scale (gss) support #1011
Conversation
a9354a2
to
bb583fe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some small comments, generally the code looks sane, but I have not tested as discussed.
ab92df4
to
d5fee2b
Compare
Signed-off-by: Julien Veyssier <[email protected]>
Signed-off-by: Julien Veyssier <[email protected]>
Signed-off-by: Julien Veyssier <[email protected]>
d5fee2b
to
4bfbeea
Compare
@@ -509,6 +513,9 @@ public function code(string $state = '', string $code = '', string $scope = '', | |||
$this->userSession->completeLogin($user, ['loginName' => $user->getUID(), 'password' => '']); | |||
$this->userSession->createSessionToken($this->request, $user->getUID(), $user->getUID()); | |||
$this->userSession->createRememberMeToken($user); | |||
// TODO server should/could be refactored so we don't need to manually create the user session and dispatch the login-related events |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you file an issue in server and reference that? Helps to keep track of other cases or considerations around that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Issue filed: nextcloud/server#50194
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code wise this seems fine 👍
This adds global scale support in user_oidc.
This requires nextcloud/globalsiteselector#168
LoginController::singleLogoutService
to get the provider ID from the GSS logout JWT tokenQuestions/doubts:
LoginController::singleLogoutService
we try to get the OIDC login token from the session to optionally pass it as a GET parameter to the "end session endpoint" of the OIDC provider. If the session has died on the GSS master, this won't work. We will pass an empty login token. How bad is this?