From decf661eb05def13c8a2dff06b5902f214df2f06 Mon Sep 17 00:00:00 2001 From: Bobby DeSimone Date: Mon, 16 Sep 2019 19:23:55 -0700 Subject: [PATCH] proxy: fix group impersonation bug Signed-off-by: Bobby DeSimone --- docs/docs/CHANGELOG.md | 4 ++++ proxy/handlers.go | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/docs/CHANGELOG.md b/docs/docs/CHANGELOG.md index 87644a4a9..77e134a07 100644 --- a/docs/docs/CHANGELOG.md +++ b/docs/docs/CHANGELOG.md @@ -23,6 +23,10 @@ - Removed `AUTHENTICATE_INTERNAL_URL`/`authenticate_internal_url` which is no longer used. +## Fixed + +- Fixed a bug where the impersonate form would persist an empty string for groups value if none set.[GH-303](https://github.com/pomerium/pomerium/issues/303) + ## v0.3.0 ### New diff --git a/proxy/handlers.go b/proxy/handlers.go index c7d4df5ec..2c4f97e14 100644 --- a/proxy/handlers.go +++ b/proxy/handlers.go @@ -233,7 +233,10 @@ func (p *Proxy) Impersonate(w http.ResponseWriter, r *http.Request) { // OK to impersonation session.ImpersonateEmail = r.FormValue("email") session.ImpersonateGroups = strings.Split(r.FormValue("group"), ",") - + groups := r.FormValue("group") + if groups != "" { + session.ImpersonateGroups = strings.Split(groups, ",") + } if err := p.sessionStore.SaveSession(w, r, session); err != nil { httputil.ErrorResponse(w, r, err) return