@ -150,7 +150,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
@@ -150,7 +150,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
verifyZeroInteractions ( filterChain ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=code&client_id=client-1&scope=user&state=.{15,}&redirect_uri=http://localhost:80 /login/oauth2/code/registration-1" ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=code&client_id=client-1&scope=user&state=.{15,}&redirect_uri=http://localhost/login/oauth2/code/registration-1" ) ;
}
@Test
@ -182,7 +182,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
@@ -182,7 +182,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
assertThat ( authorizationRequest . getClientId ( ) ) . isEqualTo (
this . registration2 . getClientId ( ) ) ;
assertThat ( authorizationRequest . getRedirectUri ( ) ) . isEqualTo (
"http://localhost:80 /login/oauth2/code/registration-2" ) ;
"http://localhost/login/oauth2/code/registration-2" ) ;
assertThat ( authorizationRequest . getScopes ( ) ) . isEqualTo (
this . registration2 . getScopes ( ) ) ;
assertThat ( authorizationRequest . getState ( ) ) . isNotNull ( ) ;
@ -203,7 +203,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
@@ -203,7 +203,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
verifyZeroInteractions ( filterChain ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=token&client_id=client-3&scope=openid%20profile%20email&state=.{15,}&redirect_uri=http://localhost:80 /login/oauth2/implicit/registration-3" ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=token&client_id=client-3&scope=openid%20profile%20email&state=.{15,}&redirect_uri=http://localhost/login/oauth2/implicit/registration-3" ) ;
}
@Test
@ -243,7 +243,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
@@ -243,7 +243,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
verifyZeroInteractions ( filterChain ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=code&client_id=client-1&scope=user&state=.{15,}&redirect_uri=http://localhost:80 /login/oauth2/code/registration-1" ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=code&client_id=client-1&scope=user&state=.{15,}&redirect_uri=http://localhost/login/oauth2/code/registration-1" ) ;
}
@Test
@ -268,6 +268,44 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
@@ -268,6 +268,44 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
assertThat ( authorizationRequest . getRedirectUri ( ) ) . isNotEqualTo (
this . registration2 . getRedirectUriTemplate ( ) ) ;
assertThat ( authorizationRequest . getRedirectUri ( ) ) . isEqualTo (
"http://localhost:80/login/oauth2/code/registration-2" ) ;
"http://localhost/login/oauth2/code/registration-2" ) ;
}
@Test
public void doFilterWhenAuthorizationRequestIncludesPort80ThenExpandedRedirectUriExcludesPort ( ) throws Exception {
String requestUri = OAuth2AuthorizationRequestRedirectFilter . DEFAULT_AUTHORIZATION_REQUEST_BASE_URI +
"/" + this . registration1 . getRegistrationId ( ) ;
MockHttpServletRequest request = new MockHttpServletRequest ( "GET" , requestUri ) ;
request . setScheme ( "http" ) ;
request . setServerName ( "example.com" ) ;
request . setServerPort ( 80 ) ;
request . setServletPath ( requestUri ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
FilterChain filterChain = mock ( FilterChain . class ) ;
this . filter . doFilter ( request , response , filterChain ) ;
verifyZeroInteractions ( filterChain ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=code&client_id=client-1&scope=user&state=.{15,}&redirect_uri=http://example.com/login/oauth2/code/registration-1" ) ;
}
@Test
public void doFilterWhenAuthorizationRequestIncludesPort443ThenExpandedRedirectUriExcludesPort ( ) throws Exception {
String requestUri = OAuth2AuthorizationRequestRedirectFilter . DEFAULT_AUTHORIZATION_REQUEST_BASE_URI +
"/" + this . registration1 . getRegistrationId ( ) ;
MockHttpServletRequest request = new MockHttpServletRequest ( "GET" , requestUri ) ;
request . setScheme ( "https" ) ;
request . setServerName ( "example.com" ) ;
request . setServerPort ( 443 ) ;
request . setServletPath ( requestUri ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
FilterChain filterChain = mock ( FilterChain . class ) ;
this . filter . doFilter ( request , response , filterChain ) ;
verifyZeroInteractions ( filterChain ) ;
assertThat ( response . getRedirectedUrl ( ) ) . matches ( "https://provider.com/oauth2/authorize\\?response_type=code&client_id=client-1&scope=user&state=.{15,}&redirect_uri=https://example.com/login/oauth2/code/registration-1" ) ;
}
}