Compare commits
4 Commits
v2024.6.5-
...
v2024.6.25
Author | SHA1 | Date | |
---|---|---|---|
ea68724635 | |||
1009eb19aa | |||
19fda6aa64 | |||
65238f1ff3 |
@ -70,6 +70,7 @@ MAIN:
|
|||||||
|
|
||||||
r.URL.Host = toURL.Host
|
r.URL.Host = toURL.Host
|
||||||
r.URL.Scheme = toURL.Scheme
|
r.URL.Scheme = toURL.Scheme
|
||||||
|
r.URL.Path = toURL.JoinPath(r.URL.Path).Path
|
||||||
|
|
||||||
ctx = logger.With(ctx,
|
ctx = logger.With(ctx,
|
||||||
logger.F("proxy", match.Name),
|
logger.F("proxy", match.Name),
|
||||||
@ -77,6 +78,11 @@ MAIN:
|
|||||||
logger.F("remoteAddr", r.RemoteAddr),
|
logger.F("remoteAddr", r.RemoteAddr),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logger.Debug(
|
||||||
|
ctx, "rewritten url",
|
||||||
|
logger.F("rewrittenURL", r.URL.String()),
|
||||||
|
)
|
||||||
|
|
||||||
metricProxyRequestsTotal.With(prometheus.Labels{metricLabelProxy: string(match.Name)}).Add(1)
|
metricProxyRequestsTotal.With(prometheus.Labels{metricLabelProxy: string(match.Name)}).Add(1)
|
||||||
|
|
||||||
ctx = withProxy(ctx, match)
|
ctx = withProxy(ctx, match)
|
||||||
|
@ -42,7 +42,7 @@ func (a *Authenticator) PreAuthentication(w http.ResponseWriter, r *http.Request
|
|||||||
return errors.WithStack(err)
|
return errors.WithStack(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
sess, err := a.store.Get(r, a.getCookieName(options.Cookie.Name, layer.Name))
|
sess, err := a.store.Get(r, a.getCookieName(options.Cookie.Name, layer.Proxy, layer.Name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(ctx, "could not retrieve session", logger.E(errors.WithStack(err)))
|
logger.Error(ctx, "could not retrieve session", logger.E(errors.WithStack(err)))
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ func (a *Authenticator) Authenticate(w http.ResponseWriter, r *http.Request, lay
|
|||||||
return nil, errors.WithStack(err)
|
return nil, errors.WithStack(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
sess, err := a.store.Get(r, a.getCookieName(options.Cookie.Name, layer.Name))
|
sess, err := a.store.Get(r, a.getCookieName(options.Cookie.Name, layer.Proxy, layer.Name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.WithStack(err)
|
return nil, errors.WithStack(err)
|
||||||
}
|
}
|
||||||
@ -401,8 +401,14 @@ func (a *Authenticator) getClient(options *LayerOptions, redirectURL string) (*C
|
|||||||
return client, nil
|
return client, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Authenticator) getCookieName(cookieName string, layerName store.LayerName) string {
|
const defaultCookieNamePrefix = "_bouncer_authn_oidc"
|
||||||
return fmt.Sprintf("%s_%s", cookieName, layerName)
|
|
||||||
|
func (a *Authenticator) getCookieName(cookieName string, proxyName store.ProxyName, layerName store.LayerName) string {
|
||||||
|
if cookieName != "" {
|
||||||
|
return cookieName
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.ToLower(fmt.Sprintf("%s_%s_%s", defaultCookieNamePrefix, proxyName, layerName))
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -8,8 +8,6 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
const defaultCookieName = "_bouncer_authn_oidc"
|
|
||||||
|
|
||||||
type LayerOptions struct {
|
type LayerOptions struct {
|
||||||
authn.LayerOptions
|
authn.LayerOptions
|
||||||
OIDC OIDCOptions `mapstructure:"oidc"`
|
OIDC OIDCOptions `mapstructure:"oidc"`
|
||||||
@ -57,7 +55,7 @@ func fromStoreOptions(storeOptions store.LayerOptions) (*LayerOptions, error) {
|
|||||||
Scopes: []string{"openid"},
|
Scopes: []string{"openid"},
|
||||||
},
|
},
|
||||||
Cookie: CookieOptions{
|
Cookie: CookieOptions{
|
||||||
Name: defaultCookieName,
|
Name: "",
|
||||||
Path: "/",
|
Path: "/",
|
||||||
HTTPOnly: true,
|
HTTPOnly: true,
|
||||||
MaxAge: time.Hour,
|
MaxAge: time.Hour,
|
||||||
|
@ -19,7 +19,8 @@ layers:
|
|||||||
# clientId: my-client-id
|
# clientId: my-client-id
|
||||||
# clientSecret: my-client-id
|
# clientSecret: my-client-id
|
||||||
# issuerURL: https://forge.cadoles.com/
|
# issuerURL: https://forge.cadoles.com/
|
||||||
# postLogoutRedirectURL: http://localhost:8080
|
# postLogoutRedirectURLs:
|
||||||
|
# - http://localhost:8080
|
||||||
# scopes: ["profile", "openid", "email"]
|
# scopes: ["profile", "openid", "email"]
|
||||||
# authParams:
|
# authParams:
|
||||||
# acr_values: "eidas2"
|
# acr_values: "eidas2"
|
||||||
|
Reference in New Issue
Block a user