diff --git a/pkg/jmap/http.go b/pkg/jmap/http.go index c9fcef0dcb..054fd4172c 100644 --- a/pkg/jmap/http.go +++ b/pkg/jmap/http.go @@ -104,14 +104,22 @@ func NewMasterAuthHttpJmapClientAuthenticator(masterUser string, masterPassword var _ HttpJmapClientAuthenticator = &MasterAuthHttpJmapClientAuthenticator{} func (h *MasterAuthHttpJmapClientAuthenticator) Authenticate(ctx context.Context, username string, _ *log.Logger, req *http.Request) Error { - masterUsername := username + "%" + h.masterUser - req.SetBasicAuth(masterUsername, h.masterPassword) + if username == h.masterUser { + req.SetBasicAuth(username, h.masterPassword) + } else { + masterUsername := username + "%" + h.masterUser + req.SetBasicAuth(masterUsername, h.masterPassword) + } return nil } func (h *MasterAuthHttpJmapClientAuthenticator) AuthenticateWS(ctx context.Context, username string, _ *log.Logger, headers http.Header) Error { - masterUsername := username + "%" + h.masterUser - headers.Add("Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte(masterUsername+":"+h.masterPassword))) + if username == h.masterUser { + headers.Add("Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte(username+":"+h.masterPassword))) + } else { + masterUsername := username + "%" + h.masterUser + headers.Add("Authorization", "Basic "+base64.StdEncoding.EncodeToString([]byte(masterUsername+":"+h.masterPassword))) + } return nil }