Polish InMemoryClientRegistrationRepository
Issue: gh-4745
This commit is contained in:
		
							parent
							
								
									a3e38fec47
								
							
						
					
					
						commit
						c1c726f123
					
				| 
						 | 
					@ -17,6 +17,7 @@ package org.springframework.security.oauth2.client.registration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.springframework.util.Assert;
 | 
					import org.springframework.util.Assert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
import java.util.Collections;
 | 
					import java.util.Collections;
 | 
				
			||||||
import java.util.Iterator;
 | 
					import java.util.Iterator;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
| 
						 | 
					@ -33,6 +34,7 @@ import static java.util.stream.Collectors.toMap;
 | 
				
			||||||
 * A {@link ClientRegistrationRepository} that stores {@link ClientRegistration}(s) <i>in-memory</i>.
 | 
					 * A {@link ClientRegistrationRepository} that stores {@link ClientRegistration}(s) <i>in-memory</i>.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @author Joe Grandja
 | 
					 * @author Joe Grandja
 | 
				
			||||||
 | 
					 * @author Rob Winch
 | 
				
			||||||
 * @since 5.0
 | 
					 * @since 5.0
 | 
				
			||||||
 * @see ClientRegistrationRepository
 | 
					 * @see ClientRegistrationRepository
 | 
				
			||||||
 * @see ClientRegistration
 | 
					 * @see ClientRegistration
 | 
				
			||||||
| 
						 | 
					@ -40,6 +42,10 @@ import static java.util.stream.Collectors.toMap;
 | 
				
			||||||
public final class InMemoryClientRegistrationRepository implements ClientRegistrationRepository, Iterable<ClientRegistration> {
 | 
					public final class InMemoryClientRegistrationRepository implements ClientRegistrationRepository, Iterable<ClientRegistration> {
 | 
				
			||||||
	private final Map<String, ClientRegistration> registrations;
 | 
						private final Map<String, ClientRegistration> registrations;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public InMemoryClientRegistrationRepository(ClientRegistration... registrations) {
 | 
				
			||||||
 | 
							this(Arrays.asList(registrations));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public InMemoryClientRegistrationRepository(List<ClientRegistration> registrations) {
 | 
						public InMemoryClientRegistrationRepository(List<ClientRegistration> registrations) {
 | 
				
			||||||
		Assert.notEmpty(registrations, "registrations cannot be empty");
 | 
							Assert.notEmpty(registrations, "registrations cannot be empty");
 | 
				
			||||||
		Collector<ClientRegistration, ?, ConcurrentMap<String, ClientRegistration>> collector =
 | 
							Collector<ClientRegistration, ?, ConcurrentMap<String, ClientRegistration>> collector =
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,8 +43,7 @@ public class InMemoryClientRegistrationRepositoryTests {
 | 
				
			||||||
		.tokenUri("https://example.com/oauth/access_token")
 | 
							.tokenUri("https://example.com/oauth/access_token")
 | 
				
			||||||
		.build();
 | 
							.build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private InMemoryClientRegistrationRepository clients = new InMemoryClientRegistrationRepository(
 | 
						private InMemoryClientRegistrationRepository clients = new InMemoryClientRegistrationRepository(this.registration);
 | 
				
			||||||
		Arrays.asList(this.registration));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test(expected = IllegalArgumentException.class)
 | 
						@Test(expected = IllegalArgumentException.class)
 | 
				
			||||||
	public void constructorListClientRegistrationWhenNullThenIllegalArgumentException() {
 | 
						public void constructorListClientRegistrationWhenNullThenIllegalArgumentException() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,6 +23,7 @@ import org.springframework.mock.web.MockHttpServletRequest;
 | 
				
			||||||
import org.springframework.mock.web.MockHttpServletResponse;
 | 
					import org.springframework.mock.web.MockHttpServletResponse;
 | 
				
			||||||
import org.springframework.security.oauth2.client.registration.ClientRegistration;
 | 
					import org.springframework.security.oauth2.client.registration.ClientRegistration;
 | 
				
			||||||
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
 | 
					import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
 | 
				
			||||||
 | 
					import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
 | 
				
			||||||
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
 | 
					import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.servlet.FilterChain;
 | 
					import javax.servlet.FilterChain;
 | 
				
			||||||
| 
						 | 
					@ -116,7 +117,7 @@ public class OAuth2AuthorizationRequestRedirectFilterTests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private OAuth2AuthorizationRequestRedirectFilter setupFilter(String authorizationUri,
 | 
						private OAuth2AuthorizationRequestRedirectFilter setupFilter(String authorizationUri,
 | 
				
			||||||
																	ClientRegistration... clientRegistrations) throws Exception {
 | 
																						ClientRegistration... clientRegistrations) throws Exception {
 | 
				
			||||||
		ClientRegistrationRepository clientRegistrationRepository = TestUtil.clientRegistrationRepository(clientRegistrations);
 | 
							ClientRegistrationRepository clientRegistrationRepository = new InMemoryClientRegistrationRepository(clientRegistrations);
 | 
				
			||||||
		OAuth2AuthorizationRequestRedirectFilter filter = new OAuth2AuthorizationRequestRedirectFilter(clientRegistrationRepository);
 | 
							OAuth2AuthorizationRequestRedirectFilter filter = new OAuth2AuthorizationRequestRedirectFilter(clientRegistrationRepository);
 | 
				
			||||||
		return filter;
 | 
							return filter;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@ import org.springframework.security.oauth2.client.authentication.OAuth2Authentic
 | 
				
			||||||
import org.springframework.security.oauth2.client.authentication.OAuth2LoginAuthenticationToken;
 | 
					import org.springframework.security.oauth2.client.authentication.OAuth2LoginAuthenticationToken;
 | 
				
			||||||
import org.springframework.security.oauth2.client.registration.ClientRegistration;
 | 
					import org.springframework.security.oauth2.client.registration.ClientRegistration;
 | 
				
			||||||
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
 | 
					import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
 | 
				
			||||||
 | 
					import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
 | 
				
			||||||
import org.springframework.security.oauth2.core.OAuth2AccessToken;
 | 
					import org.springframework.security.oauth2.core.OAuth2AccessToken;
 | 
				
			||||||
import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
 | 
					import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
 | 
				
			||||||
import org.springframework.security.oauth2.core.OAuth2ErrorCodes;
 | 
					import org.springframework.security.oauth2.core.OAuth2ErrorCodes;
 | 
				
			||||||
| 
						 | 
					@ -186,7 +187,7 @@ public class OAuth2LoginAuthenticationFilterTests {
 | 
				
			||||||
	private OAuth2LoginAuthenticationFilter setupFilter(
 | 
						private OAuth2LoginAuthenticationFilter setupFilter(
 | 
				
			||||||
			AuthenticationManager authenticationManager, ClientRegistration... clientRegistrations) throws Exception {
 | 
								AuthenticationManager authenticationManager, ClientRegistration... clientRegistrations) throws Exception {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ClientRegistrationRepository clientRegistrationRepository = TestUtil.clientRegistrationRepository(clientRegistrations);
 | 
							ClientRegistrationRepository clientRegistrationRepository = new InMemoryClientRegistrationRepository(clientRegistrations);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		OAuth2LoginAuthenticationFilter filter = new OAuth2LoginAuthenticationFilter(
 | 
							OAuth2LoginAuthenticationFilter filter = new OAuth2LoginAuthenticationFilter(
 | 
				
			||||||
			clientRegistrationRepository, mock(OAuth2AuthorizedClientService.class));
 | 
								clientRegistrationRepository, mock(OAuth2AuthorizedClientService.class));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,10 +35,6 @@ class TestUtil {
 | 
				
			||||||
	static final String GOOGLE_REGISTRATION_ID = "google";
 | 
						static final String GOOGLE_REGISTRATION_ID = "google";
 | 
				
			||||||
	static final String GITHUB_REGISTRATION_ID = "github";
 | 
						static final String GITHUB_REGISTRATION_ID = "github";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	static ClientRegistrationRepository clientRegistrationRepository(ClientRegistration... clientRegistrations) {
 | 
					 | 
				
			||||||
		return new InMemoryClientRegistrationRepository(Arrays.asList(clientRegistrations));
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	static ClientRegistration googleClientRegistration() {
 | 
						static ClientRegistration googleClientRegistration() {
 | 
				
			||||||
		return googleClientRegistration(DEFAULT_SERVER_URL + AUTHORIZE_BASE_URI + "/" + GOOGLE_REGISTRATION_ID);
 | 
							return googleClientRegistration(DEFAULT_SERVER_URL + AUTHORIZE_BASE_URI + "/" + GOOGLE_REGISTRATION_ID);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue