Skip to content

Commit 611cafb

Browse files
committed
Fix #26402: add session fixation protection for Keycloak
1 parent b55e80a commit 611cafb

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/main/java/eu/openanalytics/containerproxy/auth/impl/KeycloakAuthenticationBackend.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package eu.openanalytics.containerproxy.auth.impl;
2222

2323
import java.io.Serializable;
24+
import java.util.Arrays;
2425
import java.util.Collection;
2526
import java.util.HashMap;
2627
import java.util.List;
@@ -65,6 +66,8 @@
6566
import org.springframework.security.core.session.SessionRegistryImpl;
6667
import org.springframework.security.web.AuthenticationEntryPoint;
6768
import org.springframework.security.web.authentication.logout.LogoutFilter;
69+
import org.springframework.security.web.authentication.session.ChangeSessionIdAuthenticationStrategy;
70+
import org.springframework.security.web.authentication.session.CompositeSessionAuthenticationStrategy;
6871
import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;
6972
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;
7073
import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
@@ -169,7 +172,10 @@ protected HttpSessionManager httpSessionManager() {
169172
@Bean
170173
@ConditionalOnProperty(name="proxy.authentication", havingValue="keycloak")
171174
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
172-
return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
175+
return new CompositeSessionAuthenticationStrategy(Arrays.asList(
176+
new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl()),
177+
new ChangeSessionIdAuthenticationStrategy()
178+
));
173179
}
174180

175181
@Bean

0 commit comments

Comments
 (0)