|
1 | 1 | /*
|
2 |
| - * Copyright 2002-2023 the original author or authors. |
| 2 | + * Copyright 2002-2024 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
16 | 16 |
|
17 | 17 | package org.springframework.security.cas.web;
|
18 | 18 |
|
| 19 | +import java.io.IOException; |
| 20 | + |
19 | 21 | import jakarta.servlet.FilterChain;
|
| 22 | +import jakarta.servlet.ServletException; |
20 | 23 | import org.apereo.cas.client.proxy.ProxyGrantingTicketStorage;
|
21 | 24 | import org.junit.jupiter.api.AfterEach;
|
22 | 25 | import org.junit.jupiter.api.Test;
|
|
34 | 37 | import org.springframework.security.core.authority.AuthorityUtils;
|
35 | 38 | import org.springframework.security.core.context.SecurityContext;
|
36 | 39 | import org.springframework.security.core.context.SecurityContextHolder;
|
| 40 | +import org.springframework.security.core.context.SecurityContextHolderStrategy; |
| 41 | +import org.springframework.security.core.context.SecurityContextImpl; |
37 | 42 | import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
|
38 | 43 | import org.springframework.security.web.context.SecurityContextRepository;
|
39 | 44 | import org.springframework.test.util.ReflectionTestUtils;
|
@@ -219,4 +224,25 @@ public void successfulAuthenticationWhenProxyRequestThenSavesSecurityContext() t
|
219 | 224 | verify(securityContextRepository).saveContext(any(SecurityContext.class), eq(request), eq(response));
|
220 | 225 | }
|
221 | 226 |
|
| 227 | + @Test |
| 228 | + void successfulAuthenticationWhenSecurityContextRepositorySetThenUses() throws ServletException, IOException { |
| 229 | + SecurityContextRepository securityContextRepository = mock(SecurityContextRepository.class); |
| 230 | + CasAuthenticationFilter filter = new CasAuthenticationFilter(); |
| 231 | + filter.setSecurityContextRepository(securityContextRepository); |
| 232 | + filter.successfulAuthentication(new MockHttpServletRequest(), new MockHttpServletResponse(), |
| 233 | + new MockFilterChain(), mock(Authentication.class)); |
| 234 | + verify(securityContextRepository).saveContext(any(SecurityContext.class), any(), any()); |
| 235 | + } |
| 236 | + |
| 237 | + @Test |
| 238 | + void successfulAuthenticationWhenSecurityContextHolderStrategySetThenUses() throws ServletException, IOException { |
| 239 | + SecurityContextHolderStrategy securityContextRepository = mock(SecurityContextHolderStrategy.class); |
| 240 | + given(securityContextRepository.createEmptyContext()).willReturn(new SecurityContextImpl()); |
| 241 | + CasAuthenticationFilter filter = new CasAuthenticationFilter(); |
| 242 | + filter.setSecurityContextHolderStrategy(securityContextRepository); |
| 243 | + filter.successfulAuthentication(new MockHttpServletRequest(), new MockHttpServletResponse(), |
| 244 | + new MockFilterChain(), mock(Authentication.class)); |
| 245 | + verify(securityContextRepository).setContext(any(SecurityContext.class)); |
| 246 | + } |
| 247 | + |
222 | 248 | }
|
0 commit comments