mirror of
https://github.com/unmojang/drasl.git
synced 2025-08-03 10:56:06 -04:00
Deterministic OIDC provider display order
Go map iteration order is (intentionally) random
This commit is contained in:
parent
cec6d6828c
commit
9901aa8776
11
front.go
11
front.go
@ -332,7 +332,8 @@ func FrontRoot(app *App) func(c echo.Context) error {
|
||||
Secure: true,
|
||||
})
|
||||
|
||||
for name, provider := range app.OIDCProvidersByName {
|
||||
for _, name := range app.OIDCProviderNames {
|
||||
provider := app.OIDCProvidersByName[name]
|
||||
authURL, err := makeOIDCAuthURL(&c, provider, stateBase64)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -438,7 +439,8 @@ func FrontRegistration(app *App) func(c echo.Context) error {
|
||||
Secure: true,
|
||||
})
|
||||
|
||||
for name, provider := range app.OIDCProvidersByName {
|
||||
for _, name := range app.OIDCProviderNames {
|
||||
provider := app.OIDCProvidersByName[name]
|
||||
authURL, err := makeOIDCAuthURL(&c, provider, stateBase64)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -624,7 +626,7 @@ func (app *App) oidcLink(c echo.Context, oidcProvider *OIDCProvider, tokens *oid
|
||||
return c.Redirect(http.StatusSeeOther, returnURL)
|
||||
}
|
||||
|
||||
func (app *App) oidcSignIn(c echo.Context, oidcProvider *OIDCProvider, tokens *oidc.Tokens[*oidc.IDTokenClaims], state oidcState) error {
|
||||
func (app *App) oidcSignIn(c echo.Context, _ *OIDCProvider, tokens *oidc.Tokens[*oidc.IDTokenClaims], state oidcState) error {
|
||||
failureURL := state.ReturnURL
|
||||
completeRegistrationURL, err := url.JoinPath(app.FrontEndURL, "web/complete-registration")
|
||||
if err != nil {
|
||||
@ -994,7 +996,8 @@ func FrontUser(app *App) func(c echo.Context) error {
|
||||
}
|
||||
}
|
||||
|
||||
for name, provider := range app.OIDCProvidersByName {
|
||||
for _, name := range app.OIDCProviderNames {
|
||||
provider := app.OIDCProvidersByName[name]
|
||||
if !linkedOIDCProviderNames.Contains(name) {
|
||||
authURL, err := makeOIDCAuthURL(&c, provider, stateBase64)
|
||||
if err != nil {
|
||||
|
4
main.go
4
main.go
@ -67,6 +67,7 @@ type App struct {
|
||||
AEAD cipher.AEAD
|
||||
SkinMutex *sync.Mutex
|
||||
VerificationSkinTemplate *image.NRGBA
|
||||
OIDCProviderNames []string
|
||||
OIDCProvidersByName map[string]*OIDCProvider
|
||||
OIDCProvidersByIssuer map[string]*OIDCProvider
|
||||
}
|
||||
@ -500,6 +501,7 @@ func setup(config *Config) *App {
|
||||
}
|
||||
|
||||
// OIDC providers
|
||||
oidcProviderNames := make([]string, 0, len(config.RegistrationOIDC))
|
||||
oidcProvidersByName := map[string]*OIDCProvider{}
|
||||
oidcProvidersByIssuer := map[string]*OIDCProvider{}
|
||||
scopes := []string{"openid", "email"}
|
||||
@ -528,6 +530,7 @@ func setup(config *Config) *App {
|
||||
Config: oidcConfig,
|
||||
}
|
||||
|
||||
oidcProviderNames = append(oidcProviderNames, oidcConfig.Name)
|
||||
oidcProvidersByName[oidcConfig.Name] = &oidcProvider
|
||||
oidcProvidersByIssuer[oidcConfig.Issuer] = &oidcProvider
|
||||
}
|
||||
@ -555,6 +558,7 @@ func setup(config *Config) *App {
|
||||
AuthlibInjectorURL: Unwrap(url.JoinPath(config.BaseURL, "authlib-injector")),
|
||||
APIURL: Unwrap(url.JoinPath(config.BaseURL, DRASL_API_PREFIX)),
|
||||
VerificationSkinTemplate: verificationSkinTemplate,
|
||||
OIDCProviderNames: oidcProviderNames,
|
||||
OIDCProvidersByName: oidcProvidersByName,
|
||||
OIDCProvidersByIssuer: oidcProvidersByIssuer,
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user