|
@@ -15,20 +15,11 @@
|
|
|
*/
|
|
|
package org.springframework.security.config.annotation.web.configurers.oauth2.client;
|
|
|
|
|
|
-import java.time.Instant;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
import org.apache.http.HttpHeaders;
|
|
|
import org.junit.After;
|
|
|
import org.junit.Before;
|
|
|
import org.junit.Rule;
|
|
|
import org.junit.Test;
|
|
|
-
|
|
|
import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.ApplicationListener;
|
|
@@ -39,7 +30,6 @@ import org.springframework.http.MediaType;
|
|
|
import org.springframework.mock.web.MockFilterChain;
|
|
|
import org.springframework.mock.web.MockHttpServletRequest;
|
|
|
import org.springframework.mock.web.MockHttpServletResponse;
|
|
|
-import org.springframework.security.authentication.TestingAuthenticationToken;
|
|
|
import org.springframework.security.authentication.event.AuthenticationSuccessEvent;
|
|
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
|
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
|
@@ -51,12 +41,11 @@ import org.springframework.security.core.GrantedAuthority;
|
|
|
import org.springframework.security.core.authority.AuthorityUtils;
|
|
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
|
import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
|
|
-import org.springframework.security.core.context.SecurityContextImpl;
|
|
|
import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken;
|
|
|
import org.springframework.security.oauth2.client.endpoint.OAuth2AccessTokenResponseClient;
|
|
|
import org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequest;
|
|
|
-import org.springframework.security.oauth2.client.oidc.web.logout.OidcClientInitiatedLogoutSuccessHandler;
|
|
|
import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserRequest;
|
|
|
+import org.springframework.security.oauth2.client.oidc.web.logout.OidcClientInitiatedLogoutSuccessHandler;
|
|
|
import org.springframework.security.oauth2.client.registration.ClientRegistration;
|
|
|
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
|
|
|
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
|
|
@@ -90,6 +79,14 @@ import org.springframework.security.web.context.SecurityContextRepository;
|
|
|
import org.springframework.test.web.servlet.MockMvc;
|
|
|
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
|
|
|
|
|
|
+import java.time.Instant;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
@@ -203,31 +200,6 @@ public class OAuth2LoginConfigurerTests {
|
|
|
assertThat(OAuth2LoginConfig.EVENTS.get(0)).isInstanceOf(AuthenticationSuccessEvent.class);
|
|
|
}
|
|
|
|
|
|
- @Test
|
|
|
- public void oauth2LoginWhenAuthenticatedThenIgnored() throws Exception {
|
|
|
- // setup application context
|
|
|
- loadConfig(OAuth2LoginConfig.class);
|
|
|
-
|
|
|
- // authenticate
|
|
|
- TestingAuthenticationToken expectedAuthentication = new TestingAuthenticationToken("a",
|
|
|
- "b", "ROLE_TEST");
|
|
|
-
|
|
|
- this.request.getSession().setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, new SecurityContextImpl(expectedAuthentication));
|
|
|
-
|
|
|
- // setup authentication parameters
|
|
|
- this.request.setParameter("code", "code123");
|
|
|
- this.request.setParameter("state", "state");
|
|
|
-
|
|
|
- // perform test
|
|
|
- this.springSecurityFilterChain.doFilter(this.request, this.response, this.filterChain);
|
|
|
-
|
|
|
- // assertions
|
|
|
- Authentication authentication = this.securityContextRepository
|
|
|
- .loadContext(new HttpRequestResponseHolder(this.request, this.response))
|
|
|
- .getAuthentication();
|
|
|
- assertThat(authentication).isEqualTo(expectedAuthentication);
|
|
|
- }
|
|
|
-
|
|
|
@Test
|
|
|
public void oauth2LoginCustomWithConfigurer() throws Exception {
|
|
|
// setup application context
|