From 6cbed581c2e3aa9999b3573ae4237f3e682c1710 Mon Sep 17 00:00:00 2001 From: Brandon Matthews Date: Tue, 10 Jan 2017 12:48:53 -0800 Subject: [PATCH] Change session cookie delimeter to colon from pipe This is to permit us to store a user's Groups in a pipe-delimited list without fear of bad splits or having to reassemble it in transit. --- providers/session_state.go | 4 ++-- providers/session_state_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/providers/session_state.go b/providers/session_state.go index 214b5a4a..80f96a56 100644 --- a/providers/session_state.go +++ b/providers/session_state.go @@ -72,11 +72,11 @@ func (s *SessionState) EncryptedString(c *cookie.Cipher) (string, error) { return "", err } } - return fmt.Sprintf("%s|%s|%d|%s", s.userOrEmail(), a, s.ExpiresOn.Unix(), r), nil + return fmt.Sprintf("%s:%s:%d:%s", s.userOrEmail(), a, s.ExpiresOn.Unix(), r), nil } func DecodeSessionState(v string, c *cookie.Cipher) (s *SessionState, err error) { - chunks := strings.Split(v, "|") + chunks := strings.Split(v, ":") if len(chunks) == 1 { if strings.Contains(chunks[0], "@") { u := strings.Split(v, "@")[0] diff --git a/providers/session_state_test.go b/providers/session_state_test.go index 6044bae1..6447f999 100644 --- a/providers/session_state_test.go +++ b/providers/session_state_test.go @@ -25,7 +25,7 @@ func TestSessionStateSerialization(t *testing.T) { } encoded, err := s.EncodeSessionState(c) assert.Equal(t, nil, err) - assert.Equal(t, 3, strings.Count(encoded, "|")) + assert.Equal(t, 3, strings.Count(encoded, ":")) ss, err := DecodeSessionState(encoded, c) t.Logf("%#v", ss)