Skip to content

Commit d102cae

Browse files
committed
oidcLogin MockMvc Documentation
Remove documentation requiring a valid ClientRegistrationRepository Issue: gh-7618
1 parent 8c32d5f commit d102cae

File tree

3 files changed

+22
-43
lines changed

3 files changed

+22
-43
lines changed

samples/boot/oauth2login/src/test/java/sample/web/OAuth2LoginControllerTests.java

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@
2323

2424
import org.springframework.beans.factory.annotation.Autowired;
2525
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
26+
import org.springframework.boot.test.context.TestConfiguration;
27+
import org.springframework.boot.test.mock.mockito.MockBean;
2628
import org.springframework.context.annotation.Bean;
27-
import org.springframework.context.annotation.Configuration;
28-
import org.springframework.context.annotation.Import;
2929
import org.springframework.security.oauth2.client.registration.ClientRegistration;
3030
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
31-
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
3231
import org.springframework.security.oauth2.client.web.HttpSessionOAuth2AuthorizedClientRepository;
3332
import org.springframework.security.oauth2.client.web.OAuth2AuthorizedClientRepository;
3433
import org.springframework.security.oauth2.core.AuthorizationGrantType;
@@ -46,20 +45,23 @@
4645
* @author Josh Cummings
4746
*/
4847
@RunWith(SpringRunner.class)
49-
@WebMvcTest
50-
@Import({OAuth2LoginController.class, OAuth2LoginControllerTests.OAuth2ClientConfig.class})
48+
@WebMvcTest(OAuth2LoginController.class)
5149
public class OAuth2LoginControllerTests {
5250

53-
static ClientRegistration clientRegistration = ClientRegistration.withRegistrationId("test")
54-
.authorizationGrantType(AuthorizationGrantType.PASSWORD)
55-
.clientId("my-client-id")
56-
.clientName("my-client-name")
57-
.tokenUri("https://token-uri.example.org")
58-
.build();
59-
6051
@Autowired
6152
MockMvc mvc;
6253

54+
@MockBean
55+
ClientRegistrationRepository clientRegistrationRepository;
56+
57+
@TestConfiguration
58+
static class AuthorizedClient {
59+
@Bean
60+
public OAuth2AuthorizedClientRepository authorizedClientRepository() {
61+
return new HttpSessionOAuth2AuthorizedClientRepository();
62+
}
63+
}
64+
6365
@Test
6466
public void rootWhenAuthenticatedReturnsUserAndClient() throws Exception {
6567
this.mvc.perform(get("/").with(oidcLogin()))
@@ -70,25 +72,18 @@ public void rootWhenAuthenticatedReturnsUserAndClient() throws Exception {
7072

7173
@Test
7274
public void rootWhenOverridingClientRegistrationReturnsAccordingly() throws Exception {
75+
ClientRegistration clientRegistration = ClientRegistration.withRegistrationId("test")
76+
.authorizationGrantType(AuthorizationGrantType.PASSWORD)
77+
.clientId("my-client-id")
78+
.clientName("my-client-name")
79+
.tokenUri("https://token-uri.example.org")
80+
.build();
81+
7382
this.mvc.perform(get("/").with(oidcLogin()
7483
.clientRegistration(clientRegistration)
7584
.idToken(i -> i.subject("spring-security"))))
7685
.andExpect(model().attribute("userName", "spring-security"))
7786
.andExpect(model().attribute("clientName", "my-client-name"))
7887
.andExpect(model().attribute("userAttributes", Collections.singletonMap(SUB, "spring-security")));
7988
}
80-
81-
@Configuration
82-
static class OAuth2ClientConfig {
83-
84-
@Bean
85-
ClientRegistrationRepository clientRegistrationRepository() {
86-
return new InMemoryClientRegistrationRepository(clientRegistration);
87-
}
88-
89-
@Bean
90-
OAuth2AuthorizedClientRepository authorizedClientRepository() {
91-
return new HttpSessionOAuth2AuthorizedClientRepository();
92-
}
93-
}
9489
}

test/src/main/java/org/springframework/security/test/web/servlet/request/SecurityMockMvcRequestPostProcessors.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,10 +1161,6 @@ public OidcLoginRequestPostProcessor oidcUser(OidcUser oidcUser) {
11611161
* annotations should register an {@link HttpSessionOAuth2AuthorizedClientRepository} bean
11621162
* to the application context.
11631163
*
1164-
* The client registration must be a valid {@link ClientRegistration} from the
1165-
* {@link org.springframework.security.oauth2.client.registration.ClientRegistrationRepository}
1166-
* in the application context.
1167-
*
11681164
* @param clientRegistration the {@link ClientRegistration} to use
11691165
* @return the {@link OidcLoginRequestPostProcessor} for further configuration
11701166
*/

test/src/test/java/org/springframework/security/test/web/servlet/request/SecurityMockMvcRequestPostProcessorsOidcLoginTests.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,9 @@
3434
import org.springframework.security.core.authority.SimpleGrantedAuthority;
3535
import org.springframework.security.oauth2.client.OAuth2AuthorizedClient;
3636
import org.springframework.security.oauth2.client.annotation.RegisteredOAuth2AuthorizedClient;
37-
import org.springframework.security.oauth2.client.registration.ClientRegistration;
3837
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
3938
import org.springframework.security.oauth2.client.web.HttpSessionOAuth2AuthorizedClientRepository;
4039
import org.springframework.security.oauth2.client.web.OAuth2AuthorizedClientRepository;
41-
import org.springframework.security.oauth2.core.AuthorizationGrantType;
4240
import org.springframework.security.oauth2.core.oidc.user.OidcUser;
4341
import org.springframework.security.test.context.TestSecurityContextHolder;
4442
import org.springframework.test.context.ContextConfiguration;
@@ -52,9 +50,7 @@
5250
import org.springframework.web.context.WebApplicationContext;
5351
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
5452

55-
import static org.mockito.ArgumentMatchers.anyString;
5653
import static org.mockito.Mockito.mock;
57-
import static org.powermock.api.mockito.PowerMockito.when;
5854
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.oidcLogin;
5955
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
6056
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
@@ -105,15 +101,7 @@ public void oidcLoginWhenUsingDefaultsThenProducesDefaultAuthentication()
105101
public void oidcLoginWhenUsingDefaultsThenProducesDefaultAuthorizedClient()
106102
throws Exception {
107103

108-
ClientRegistration clientRegistration = ClientRegistration.withRegistrationId("test")
109-
.authorizationGrantType(AuthorizationGrantType.PASSWORD)
110-
.clientId("test-client")
111-
.tokenUri("https://token-uri.example.org")
112-
.build();
113-
ClientRegistrationRepository repository = this.context.getBean(ClientRegistrationRepository.class);
114-
when(repository.findByRegistrationId(anyString())).thenReturn(clientRegistration);
115-
116-
this.mvc.perform(get("/access-token").with(oidcLogin().clientRegistration(clientRegistration)))
104+
this.mvc.perform(get("/access-token").with(oidcLogin()))
117105
.andExpect(content().string("access-token"));
118106
}
119107

0 commit comments

Comments
 (0)