@ -19,6 +19,7 @@ import org.junit.Before;
@@ -19,6 +19,7 @@ import org.junit.Before;
import org.junit.Test ;
import org.junit.runner.RunWith ;
import org.mockito.ArgumentCaptor ;
import org.powermock.api.mockito.PowerMockito ;
import org.powermock.core.classloader.annotations.PowerMockIgnore ;
import org.powermock.core.classloader.annotations.PrepareForTest ;
import org.powermock.modules.junit4.PowerMockRunner ;
@ -53,8 +54,10 @@ import java.util.HashMap;
@@ -53,8 +54,10 @@ import java.util.HashMap;
import java.util.Map ;
import static org.assertj.core.api.Assertions.assertThat ;
import static org.junit.Assert.fail ;
import static org.mockito.ArgumentMatchers.any ;
import static org.mockito.Mockito.* ;
import static org.powermock.api.mockito.PowerMockito.verifyPrivate ;
/ * *
* Tests for { @link OAuth2LoginAuthenticationFilter } .
@ -62,7 +65,7 @@ import static org.mockito.Mockito.*;
@@ -62,7 +65,7 @@ import static org.mockito.Mockito.*;
* @author Joe Grandja
* /
@PowerMockIgnore ( "javax.security.*" )
@PrepareForTest ( { OAuth2AuthorizationRequest . class , OAuth2AuthorizationExchange . class } )
@PrepareForTest ( { OAuth2AuthorizationRequest . class , OAuth2AuthorizationExchange . class , OAuth2LoginAuthenticationFilter . class } )
@RunWith ( PowerMockRunner . class )
public class OAuth2LoginAuthenticationFilterTests {
private ClientRegistration registration1 ;
@ -263,6 +266,25 @@ public class OAuth2LoginAuthenticationFilterTests {
@@ -263,6 +266,25 @@ public class OAuth2LoginAuthenticationFilterTests {
verify ( this . filter ) . attemptAuthentication ( any ( HttpServletRequest . class ) , any ( HttpServletResponse . class ) ) ;
}
@Test
public void attemptAuthenticationWhenAuthorizationRequestIsNullThenAuthorizationResponseNotCreated ( ) throws Exception {
OAuth2LoginAuthenticationFilter filter = PowerMockito . spy ( new OAuth2LoginAuthenticationFilter (
this . clientRegistrationRepository , this . authorizedClientService ) ) ;
MockHttpServletRequest request = new MockHttpServletRequest ( ) ;
request . addParameter ( OAuth2ParameterNames . CODE , "code" ) ;
request . addParameter ( OAuth2ParameterNames . STATE , "state" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
try {
filter . attemptAuthentication ( request , response ) ;
fail ( ) ;
} catch ( OAuth2AuthenticationException ex ) {
verifyPrivate ( filter , never ( ) ) . invoke ( "convert" , any ( HttpServletRequest . class ) ) ;
}
}
private void setUpAuthorizationRequest ( HttpServletRequest request , HttpServletResponse response ,
ClientRegistration registration ) {
OAuth2AuthorizationRequest authorizationRequest = mock ( OAuth2AuthorizationRequest . class ) ;