|  | @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  |  import org.junit.jupiter.api.AfterEach;
 | 
	
		
			
				|  |  |  import org.junit.jupiter.api.Test;
 | 
	
		
			
				|  |  |  import org.junit.jupiter.api.extension.ExtendWith;
 | 
	
		
			
				|  |  | +import org.mockito.ArgumentCaptor;
 | 
	
		
			
				|  |  |  import org.mockito.Mock;
 | 
	
		
			
				|  |  |  import org.mockito.junit.jupiter.MockitoExtension;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -38,7 +39,9 @@ import org.springframework.security.authentication.AuthenticationManagerResolver
 | 
	
		
			
				|  |  |  import org.springframework.security.authentication.BadCredentialsException;
 | 
	
		
			
				|  |  |  import org.springframework.security.authentication.TestingAuthenticationToken;
 | 
	
		
			
				|  |  |  import org.springframework.security.core.Authentication;
 | 
	
		
			
				|  |  | +import org.springframework.security.core.context.SecurityContext;
 | 
	
		
			
				|  |  |  import org.springframework.security.core.context.SecurityContextHolder;
 | 
	
		
			
				|  |  | +import org.springframework.security.web.context.SecurityContextRepository;
 | 
	
		
			
				|  |  |  import org.springframework.security.web.util.matcher.RequestMatcher;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static org.assertj.core.api.Assertions.assertThat;
 | 
	
	
		
			
				|  | @@ -256,4 +259,36 @@ public class AuthenticationFilterTests {
 | 
	
		
			
				|  |  |  		assertThat(session.getId()).isNotEqualTo(sessionId);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	@Test
 | 
	
		
			
				|  |  | +	public void filterWhenSuccessfulAuthenticationThenNoSessionCreated() throws Exception {
 | 
	
		
			
				|  |  | +		Authentication authentication = new TestingAuthenticationToken("test", "this", "ROLE_USER");
 | 
	
		
			
				|  |  | +		given(this.authenticationConverter.convert(any())).willReturn(authentication);
 | 
	
		
			
				|  |  | +		given(this.authenticationManager.authenticate(any())).willReturn(authentication);
 | 
	
		
			
				|  |  | +		MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
 | 
	
		
			
				|  |  | +		MockHttpServletResponse response = new MockHttpServletResponse();
 | 
	
		
			
				|  |  | +		FilterChain chain = new MockFilterChain();
 | 
	
		
			
				|  |  | +		AuthenticationFilter filter = new AuthenticationFilter(this.authenticationManager,
 | 
	
		
			
				|  |  | +				this.authenticationConverter);
 | 
	
		
			
				|  |  | +		filter.doFilter(request, response, chain);
 | 
	
		
			
				|  |  | +		assertThat(request.getSession(false)).isNull();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Test
 | 
	
		
			
				|  |  | +	public void filterWhenCustomSecurityContextRepositoryAndSuccessfulAuthenticationRepositoryUsed() throws Exception {
 | 
	
		
			
				|  |  | +		SecurityContextRepository securityContextRepository = mock(SecurityContextRepository.class);
 | 
	
		
			
				|  |  | +		ArgumentCaptor<SecurityContext> securityContextArg = ArgumentCaptor.forClass(SecurityContext.class);
 | 
	
		
			
				|  |  | +		Authentication authentication = new TestingAuthenticationToken("test", "this", "ROLE_USER");
 | 
	
		
			
				|  |  | +		given(this.authenticationConverter.convert(any())).willReturn(authentication);
 | 
	
		
			
				|  |  | +		given(this.authenticationManager.authenticate(any())).willReturn(authentication);
 | 
	
		
			
				|  |  | +		MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
 | 
	
		
			
				|  |  | +		MockHttpServletResponse response = new MockHttpServletResponse();
 | 
	
		
			
				|  |  | +		FilterChain chain = new MockFilterChain();
 | 
	
		
			
				|  |  | +		AuthenticationFilter filter = new AuthenticationFilter(this.authenticationManager,
 | 
	
		
			
				|  |  | +				this.authenticationConverter);
 | 
	
		
			
				|  |  | +		filter.setSecurityContextRepository(securityContextRepository);
 | 
	
		
			
				|  |  | +		filter.doFilter(request, response, chain);
 | 
	
		
			
				|  |  | +		verify(securityContextRepository).saveContext(securityContextArg.capture(), eq(request), eq(response));
 | 
	
		
			
				|  |  | +		assertThat(securityContextArg.getValue().getAuthentication()).isEqualTo(authentication);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |