allow override allowed_user in middleware, fix typos

This commit is contained in:
yusing 2025-01-14 04:08:16 +08:00
parent 9aee310844
commit c5e0ac6f38
3 changed files with 11 additions and 6 deletions

View file

@ -107,16 +107,16 @@ func (auth *OIDCProvider) CheckToken(w http.ResponseWriter, r *http.Request) err
return nil return nil
} }
// generateState generates a random string for ODIC state. // generateState generates a random string for OIDC state.
const odicStateLength = 32 const oidcStateLength = 32
func generateState() (string, error) { func generateState() (string, error) {
b := make([]byte, odicStateLength) b := make([]byte, oidcStateLength)
_, err := rand.Read(b) _, err := rand.Read(b)
if err != nil { if err != nil {
return "", err return "", err
} }
return base64.URLEncoding.EncodeToString(b)[:odicStateLength], nil return base64.URLEncoding.EncodeToString(b)[:oidcStateLength], nil
} }
// RedirectOIDC initiates the OIDC login flow. // RedirectOIDC initiates the OIDC login flow.

View file

@ -14,7 +14,7 @@ import (
var allMiddlewares = map[string]*Middleware{ var allMiddlewares = map[string]*Middleware{
"redirecthttp": RedirectHTTP, "redirecthttp": RedirectHTTP,
"auth": OIDC, "oidc": OIDC,
"request": ModifyRequest, "request": ModifyRequest,
"modifyrequest": ModifyRequest, "modifyrequest": ModifyRequest,

View file

@ -8,7 +8,7 @@ import (
) )
type oidcMiddleware struct { type oidcMiddleware struct {
AllowedUsers []string AllowedUsers []string `json:"allowed_users"`
auth auth.Provider auth auth.Provider
authMux *http.ServeMux authMux *http.ServeMux
@ -30,7 +30,12 @@ func (amw *oidcMiddleware) finalize() error {
if err != nil { if err != nil {
return err return err
} }
authProvider.SetOverrideHostEnabled(true) authProvider.SetOverrideHostEnabled(true)
if len(amw.AllowedUsers) > 0 {
authProvider.SetAllowedUsers(amw.AllowedUsers)
}
amw.authMux = http.NewServeMux() amw.authMux = http.NewServeMux()
amw.authMux.HandleFunc(OIDCMiddlewareCallbackPath, authProvider.LoginCallbackHandler) amw.authMux.HandleFunc(OIDCMiddlewareCallbackPath, authProvider.LoginCallbackHandler)
amw.authMux.HandleFunc(OIDCLogoutPath, func(w http.ResponseWriter, r *http.Request) { amw.authMux.HandleFunc(OIDCLogoutPath, func(w http.ResponseWriter, r *http.Request) {