diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/SecurityConfiguration.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/SecurityConfiguration.kt index 7274dc4a8..c9fd61091 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/SecurityConfiguration.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/SecurityConfiguration.kt @@ -157,6 +157,7 @@ class SecurityConfiguration( TokenBasedRememberMeServices(komgaSettingsProvider.rememberMeKey, komgaUserDetailsService).apply { setTokenValiditySeconds(komgaSettingsProvider.rememberMeDuration.inWholeSeconds.toInt()) setAuthenticationDetailsSource(userAgentWebAuthenticationDetailsSource) + setCookieName("komga-remember-me") }, ) } diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/session/SessionConfiguration.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/session/SessionConfiguration.kt index 792d69752..05bebd711 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/session/SessionConfiguration.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/security/session/SessionConfiguration.kt @@ -17,7 +17,7 @@ import org.springframework.session.web.http.HttpSessionIdResolver @Configuration class SessionConfiguration { @Bean - fun sessionCookieName() = "SESSION" + fun sessionCookieName() = "KOMGA-SESSION" @Bean fun sessionHeaderName() = "X-Auth-Token" diff --git a/komga/src/test/kotlin/org/gotson/komga/interfaces/api/SessionTest.kt b/komga/src/test/kotlin/org/gotson/komga/interfaces/api/SessionTest.kt index c4ca42333..21890d47a 100644 --- a/komga/src/test/kotlin/org/gotson/komga/interfaces/api/SessionTest.kt +++ b/komga/src/test/kotlin/org/gotson/komga/interfaces/api/SessionTest.kt @@ -27,6 +27,8 @@ class SessionTest( ) { private lateinit var user: KomgaUser + private val rememberMeCookieName = "komga-remember-me" + @BeforeAll fun setup() { user = KomgaUser("user@example.org", "user") @@ -56,6 +58,23 @@ class SessionTest( } } + @Test + fun `given remember-me parameter when hitting an endpoint then remember-me cookie is returned`() { + mockMvc + .get("/api/v2/users/me") { + with(httpBasic(user.email, user.password)) + param("remember-me", "true") + }.andExpect { + header { + string(HttpHeaders.SET_COOKIE, containsString("$rememberMeCookieName=")) + } + cookie { + exists(rememberMeCookieName) + httpOnly(rememberMeCookieName, true) + } + } + } + @Test fun `given valid basic credentials when providing the auth header then session is returned in headers`() { mockMvc