providers/proxy: fix nil error in claims

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2022-02-03 17:58:38 +01:00
parent cf600f6f26
commit cac8539d79
4 changed files with 11 additions and 11 deletions

View file

@ -6,14 +6,14 @@ type ProxyClaims struct {
} }
type Claims struct { type Claims struct {
Sub string `json:"sub"` Sub string `json:"sub"`
Exp int `json:"exp"` Exp int `json:"exp"`
Email string `json:"email"` Email string `json:"email"`
Verified bool `json:"email_verified"` Verified bool `json:"email_verified"`
Proxy ProxyClaims `json:"ak_proxy"` Proxy *ProxyClaims `json:"ak_proxy"`
Name string `json:"name"` Name string `json:"name"`
PreferredUsername string `json:"preferred_username"` PreferredUsername string `json:"preferred_username"`
Groups []string `json:"groups"` Groups []string `json:"groups"`
RawToken string RawToken string
} }

View file

@ -70,7 +70,7 @@ func TestForwardHandleNginx_Single_Claims(t *testing.T) {
s, _ := a.sessions.Get(req, constants.SeesionName) s, _ := a.sessions.Get(req, constants.SeesionName)
s.Values[constants.SessionClaims] = Claims{ s.Values[constants.SessionClaims] = Claims{
Sub: "foo", Sub: "foo",
Proxy: ProxyClaims{ Proxy: &ProxyClaims{
UserAttributes: map[string]interface{}{ UserAttributes: map[string]interface{}{
"username": "foo", "username": "foo",
"password": "bar", "password": "bar",

View file

@ -64,7 +64,7 @@ func TestForwardHandleTraefik_Single_Claims(t *testing.T) {
s, _ := a.sessions.Get(req, constants.SeesionName) s, _ := a.sessions.Get(req, constants.SeesionName)
s.Values[constants.SessionClaims] = Claims{ s.Values[constants.SessionClaims] = Claims{
Sub: "foo", Sub: "foo",
Proxy: ProxyClaims{ Proxy: &ProxyClaims{
UserAttributes: map[string]interface{}{ UserAttributes: map[string]interface{}{
"username": "foo", "username": "foo",
"password": "bar", "password": "bar",

View file

@ -74,7 +74,7 @@ func (a *Application) configureProxy() error {
func (a *Application) proxyModifyRequest(ou *url.URL) func(req *http.Request) { func (a *Application) proxyModifyRequest(ou *url.URL) func(req *http.Request) {
return func(r *http.Request) { return func(r *http.Request) {
claims, _ := a.getClaims(r) claims, _ := a.getClaims(r)
if claims.Proxy.BackendOverride != "" { if claims.Proxy != nil && claims.Proxy.BackendOverride != "" {
u, err := url.Parse(claims.Proxy.BackendOverride) u, err := url.Parse(claims.Proxy.BackendOverride)
if err != nil { if err != nil {
a.log.WithField("backend_override", claims.Proxy.BackendOverride).WithError(err).Warning("failed parse user backend override") a.log.WithField("backend_override", claims.Proxy.BackendOverride).WithError(err).Warning("failed parse user backend override")