Skip to content

Commit 7dd5cc6

Browse files
m-ibotjzheaux
authored andcommitted
Pick Up Custom SecurityContextRespository
Closes gh-12579
1 parent 52ed165 commit 7dd5cc6

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configurers/SessionManagementConfigurer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,9 @@ public void init(H http) {
380380
http.setSharedObject(SecurityContextRepository.class, defaultRepository);
381381
}
382382
}
383+
else {
384+
this.sessionManagementSecurityContextRepository = securityContextRepository;
385+
}
383386
RequestCache requestCache = http.getSharedObject(RequestCache.class);
384387
if (requestCache == null) {
385388
if (stateless) {

config/src/test/java/org/springframework/security/config/annotation/web/configurers/SessionManagementConfigurerTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,18 @@ public void sessionManagementWhenConfiguredThenDoesNotOverrideSecurityContextRep
125125
this.mvc.perform(get("/"));
126126
}
127127

128+
@Test
129+
public void sessionManagementWhenSecurityContextRepositoryIsConfiguredThenUseIt() throws Exception {
130+
SessionManagementSecurityContextRepositoryConfig.SECURITY_CONTEXT_REPO = mock(SecurityContextRepository.class);
131+
given(SessionManagementSecurityContextRepositoryConfig.SECURITY_CONTEXT_REPO
132+
.loadDeferredContext(any(HttpServletRequest.class)))
133+
.willReturn(new TestDeferredSecurityContext(mock(SecurityContext.class), false));
134+
this.spring.register(SessionManagementSecurityContextRepositoryConfig.class).autowire();
135+
this.mvc.perform(get("/"));
136+
verify(SessionManagementSecurityContextRepositoryConfig.SECURITY_CONTEXT_REPO)
137+
.containsContext(any(HttpServletRequest.class));
138+
}
139+
128140
@Test
129141
public void sessionManagementWhenInvokedTwiceThenUsesOriginalSessionCreationPolicy() throws Exception {
130142
this.spring.register(InvokeTwiceDoesNotOverride.class).autowire();

0 commit comments

Comments
 (0)