-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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 setting to force login through openid #21851
base: main
Are you sure you want to change the base?
Changes from all commits
bddae8a
50163be
1235715
f4224c5
d20b362
1a0a4d4
c7cfdcc
d7236bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -137,6 +137,32 @@ func checkAutoLogin(ctx *context.Context) bool { | |||||||||||||||||||||||||||||
return false | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
func checkForceOAuth(ctx *context.Context) bool { | ||||||||||||||||||||||||||||||
// Check if authentication is forced to OAuth | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
authSources, err := auth.GetActiveOAuth2ProviderSources() | ||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||
return false | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
var OAuthList []int64 | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
for _, source := range authSources { | ||||||||||||||||||||||||||||||
if forced, ok := source.Cfg.(auth_service.ForceOAuth); ok && forced.IsOAuthForced() { | ||||||||||||||||||||||||||||||
OAuthList = append(OAuthList, source.ID) | ||||||||||||||||||||||||||||||
app, err := auth.GetOAuth2ApplicationByID(ctx, OAuthList[0]) | ||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||
return false | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
url := app.PrimaryRedirectURI() | ||||||||||||||||||||||||||||||
ctx.Redirect(url) | ||||||||||||||||||||||||||||||
Comment on lines
+148
to
+158
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For reference, we simplified like this to avoid involving the application unnecessarily.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. At least for my test case (openID) this doesn't work because you still land on the local login page |
||||||||||||||||||||||||||||||
return true | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
return false | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
// SignIn render sign in page | ||||||||||||||||||||||||||||||
func SignIn(ctx *context.Context) { | ||||||||||||||||||||||||||||||
ctx.Data["Title"] = ctx.Tr("sign_in") | ||||||||||||||||||||||||||||||
|
@@ -146,6 +172,11 @@ func SignIn(ctx *context.Context) { | |||||||||||||||||||||||||||||
return | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
// Check if authentication is forced to OAuth | ||||||||||||||||||||||||||||||
if checkForceOAuth(ctx) { | ||||||||||||||||||||||||||||||
return | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
orderedOAuth2Names, oauth2Providers, err := oauth2.GetActiveOAuth2Providers() | ||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is great! Thank you so much!! Are you able to re-use this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I tried that but sadly the map of Providers that |
||||||||||||||||||||||||||||||
if err != nil { | ||||||||||||||||||||||||||||||
ctx.ServerError("UserSignIn", err) | ||||||||||||||||||||||||||||||
|
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.
Here it looks up an application to get the redirect URL, not an authentication source.