|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2002-2018 the original author or authors.
|
|
|
+ * Copyright 2002-2022 the original author or authors.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -37,7 +37,6 @@ import org.springframework.security.oauth2.client.registration.ClientRegistratio
|
|
|
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
|
|
|
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
|
|
|
import org.springframework.security.oauth2.client.registration.TestClientRegistrations;
|
|
|
-import org.springframework.security.oauth2.core.AuthorizationGrantType;
|
|
|
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
|
|
|
import org.springframework.security.web.savedrequest.RequestCache;
|
|
|
import org.springframework.util.ClassUtils;
|
|
@@ -49,7 +48,6 @@ import static org.mockito.ArgumentMatchers.any;
|
|
|
import static org.mockito.BDDMockito.given;
|
|
|
import static org.mockito.BDDMockito.willThrow;
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
-import static org.mockito.Mockito.times;
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
|
|
|
|
@@ -64,8 +62,6 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
|
|
|
|
|
|
private ClientRegistration registration2;
|
|
|
|
|
|
- private ClientRegistration registration3;
|
|
|
-
|
|
|
private ClientRegistrationRepository clientRegistrationRepository;
|
|
|
|
|
|
private OAuth2AuthorizationRequestRedirectFilter filter;
|
|
@@ -76,15 +72,8 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
|
|
|
public void setUp() {
|
|
|
this.registration1 = TestClientRegistrations.clientRegistration().build();
|
|
|
this.registration2 = TestClientRegistrations.clientRegistration2().build();
|
|
|
- // @formatter:off
|
|
|
- this.registration3 = TestClientRegistrations.clientRegistration()
|
|
|
- .registrationId("registration-3")
|
|
|
- .authorizationGrantType(AuthorizationGrantType.IMPLICIT)
|
|
|
- .redirectUri("{baseUrl}/authorize/oauth2/implicit/{registrationId}")
|
|
|
- .build();
|
|
|
- // @formatter:on
|
|
|
this.clientRegistrationRepository = new InMemoryClientRegistrationRepository(this.registration1,
|
|
|
- this.registration2, this.registration3);
|
|
|
+ this.registration2);
|
|
|
this.filter = new OAuth2AuthorizationRequestRedirectFilter(this.clientRegistrationRepository);
|
|
|
this.requestCache = mock(RequestCache.class);
|
|
|
this.filter.setRequestCache(this.requestCache);
|
|
@@ -177,38 +166,6 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
|
|
|
any(HttpServletRequest.class), any(HttpServletResponse.class));
|
|
|
}
|
|
|
|
|
|
- @Test
|
|
|
- public void doFilterWhenAuthorizationRequestImplicitGrantThenRedirectForAuthorization() throws Exception {
|
|
|
- String requestUri = OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI + "/"
|
|
|
- + this.registration3.getRegistrationId();
|
|
|
- MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
|
|
|
- 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://example.com/login/oauth/authorize\\?"
|
|
|
- + "response_type=token&client_id=client-id&" + "scope=read:user&state=.{15,}&"
|
|
|
- + "redirect_uri=http://localhost/authorize/oauth2/implicit/registration-3");
|
|
|
- }
|
|
|
-
|
|
|
- @Test
|
|
|
- public void doFilterWhenAuthorizationRequestImplicitGrantThenAuthorizationRequestNotSaved() throws Exception {
|
|
|
- String requestUri = OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI + "/"
|
|
|
- + this.registration3.getRegistrationId();
|
|
|
- MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
|
|
|
- request.setServletPath(requestUri);
|
|
|
- MockHttpServletResponse response = new MockHttpServletResponse();
|
|
|
- FilterChain filterChain = mock(FilterChain.class);
|
|
|
- AuthorizationRequestRepository<OAuth2AuthorizationRequest> authorizationRequestRepository = mock(
|
|
|
- AuthorizationRequestRepository.class);
|
|
|
- this.filter.setAuthorizationRequestRepository(authorizationRequestRepository);
|
|
|
- this.filter.doFilter(request, response, filterChain);
|
|
|
- verifyZeroInteractions(filterChain);
|
|
|
- verify(authorizationRequestRepository, times(0)).saveAuthorizationRequest(any(OAuth2AuthorizationRequest.class),
|
|
|
- any(HttpServletRequest.class), any(HttpServletResponse.class));
|
|
|
- }
|
|
|
-
|
|
|
@Test
|
|
|
public void doFilterWhenCustomAuthorizationRequestBaseUriThenRedirectForAuthorization() throws Exception {
|
|
|
String authorizationRequestBaseUri = "/custom/authorization";
|