Skip to content

Commit a99c661

Browse files
authored
fix: same site cookies for sso/ normal login (#299)
* fix: same site cookies for sso/ normal login Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com> * fix: enforce strict for callback cookie Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com> * fix: fix tests Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com> --------- Signed-off-by: Gustavo Carvalho <gustavo.carvalho@container-solutions.com>
1 parent 5eeda81 commit a99c661

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

internal/api/handler/auth/auth.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,12 @@ func (h *AuthHandler) LoginUser(ctx echo.Context) error {
112112
cookie.Expires = time.Now().Add(time.Hour * 24)
113113
cookie.HttpOnly = true
114114
cookie.Path = "/"
115+
cookie.SameSite = http.SameSiteStrictMode
115116

116117
if isDevelopmentEnvironment(h.config.Environment) {
117118
cookie.Secure = false
118-
cookie.SameSite = http.SameSiteLaxMode
119119
} else {
120120
cookie.Secure = true
121-
cookie.SameSite = http.SameSiteStrictMode
122121
}
123122

124123
ctx.SetCookie(cookie)

internal/api/handler/auth/sso.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,13 @@ func (h *SSOHandler) InitiateLogin(ctx echo.Context) error {
123123
cookie.Expires = time.Now().Add(5 * time.Minute)
124124
cookie.HttpOnly = true
125125
cookie.Path = "/"
126+
// Note: cannot set this to Strict as it breaks OIDC/oAuth2 flow
127+
cookie.SameSite = http.SameSiteLaxMode
126128

127129
if isDevelopmentEnvironment(h.config.Environment) {
128130
cookie.Secure = false
129-
cookie.SameSite = http.SameSiteLaxMode
130131
} else {
131132
cookie.Secure = true
132-
cookie.SameSite = http.SameSiteStrictMode
133133
}
134134

135135
ctx.SetCookie(cookie)
@@ -217,13 +217,12 @@ func (h *SSOHandler) Callback(ctx echo.Context) error {
217217
authCookie.Expires = time.Now().Add(time.Hour * 24)
218218
authCookie.HttpOnly = true
219219
authCookie.Path = "/"
220+
authCookie.SameSite = http.SameSiteStrictMode
220221

221222
if isDevelopmentEnvironment(h.config.Environment) {
222223
authCookie.Secure = false
223-
authCookie.SameSite = http.SameSiteLaxMode
224224
} else {
225225
authCookie.Secure = true
226-
authCookie.SameSite = http.SameSiteStrictMode
227226
}
228227

229228
ctx.SetCookie(authCookie)

internal/api/handler/auth/sso_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ func TestSSOHandlerInitiateLogin_SetsStateCookie(t *testing.T) {
150150
require.NotNil(t, stateCookie)
151151
require.Equal(t, "state123", stateCookie.Value)
152152
require.True(t, stateCookie.Secure)
153-
require.Equal(t, http.SameSiteStrictMode, stateCookie.SameSite)
153+
require.Equal(t, http.SameSiteLaxMode, stateCookie.SameSite)
154154
}
155155

156156
func TestSSOHandlerCallback_NewUserCreated(t *testing.T) {

0 commit comments

Comments
 (0)