1+ // Copyright (c) Microsoft Corporation. All rights reserved.
2+ // Licensed under the MIT License.
3+
14package com .azure .spring .aad .implementation ;
25
3- import com .azure .test .utils .AppRunner ;
4- import org .junit .jupiter .api .AfterEach ;
56import org .junit .jupiter .api .BeforeEach ;
67import org .junit .jupiter .api .Test ;
7- import org .springframework .boot .autoconfigure .SpringBootApplication ;
8- import org .springframework .context .annotation .Configuration ;
8+ import org .springframework .context .annotation .AnnotationConfigApplicationContext ;
99import org .springframework .mock .web .MockHttpServletRequest ;
1010import org .springframework .mock .web .MockHttpServletResponse ;
11- import org .springframework .security .config .annotation .web .configuration .EnableWebSecurity ;
1211import org .springframework .security .core .Authentication ;
1312import org .springframework .security .oauth2 .client .OAuth2AuthorizedClient ;
1413import org .springframework .security .oauth2 .client .registration .ClientRegistration ;
1716import org .springframework .security .oauth2 .core .OAuth2AccessToken ;
1817import org .springframework .security .oauth2 .core .OAuth2RefreshToken ;
1918import org .springframework .security .web .authentication .preauth .PreAuthenticatedAuthenticationToken ;
19+ import org .springframework .test .context .support .TestPropertySourceUtils ;
2020
2121import java .time .Instant ;
2222import java .util .Optional ;
2727
2828public class AuthorizedClientRepoTest {
2929
30- private AppRunner runner ;
31-
3230 private ClientRegistration azure ;
3331 private ClientRegistration graph ;
3432
35- private OAuth2AuthorizedClientRepository repo ;
33+ private OAuth2AuthorizedClientRepository authorizedRepo ;
3634 private MockHttpServletRequest request ;
3735 private MockHttpServletResponse response ;
3836
3937 @ BeforeEach
4038 public void setup () {
41- runner = createApp ();
42- runner .start ();
39+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext ();
40+ TestPropertySourceUtils .addInlinedPropertiesToEnvironment (
41+ context ,
42+ "azure.activedirectory.user-group.allowed-groups = group1, group2" ,
43+ "azure.activedirectory.authorization-server-uri = fake-uri" ,
44+ "azure.activedirectory.tenant-id = fake-tenant-id" ,
45+ "azure.activedirectory.client-id = fake-client-id" ,
46+ "azure.activedirectory.client-secret = fake-client-secret" ,
47+ "azure.activedirectory.authorization.graph.scopes = Calendars.Read"
48+ );
49+ context .register (AzureActiveDirectoryConfiguration .class );
50+ context .refresh ();
4351
44- AzureClientRegistrationRepository clientRepo = runner .getBean (AzureClientRegistrationRepository .class );
52+ AzureClientRegistrationRepository clientRepo = context .getBean (AzureClientRegistrationRepository .class );
4553 azure = clientRepo .findByRegistrationId ("azure" );
4654 graph = clientRepo .findByRegistrationId ("graph" );
4755
48- repo = new AzureAuthorizedClientRepository (clientRepo );
56+ authorizedRepo = new AzureAuthorizedClientRepository (clientRepo );
4957 request = new MockHttpServletRequest ();
5058 response = new MockHttpServletResponse ();
5159 }
5260
53- private AppRunner createApp () {
54- AppRunner result = new AppRunner (AzureActiveDirectoryConfigurationTest .DumbApp .class );
55- result .property ("azure.activedirectory.authorization-server-uri" , "fake-uri" );
56- result .property ("azure.activedirectory.tenant-id" , "fake-tenant-id" );
57- result .property ("azure.activedirectory.client-id" , "fake-client-id" );
58- result .property ("azure.activedirectory.client-secret" , "fake-client-secret" );
59- result .property ("azure.activedirectory.authorization.graph.scopes" , "Calendars.Read" );
60- return result ;
61- }
62-
63- @ AfterEach
64- public void tearDown () {
65- runner .stop ();
66- }
67-
6861 @ Test
6962 public void loadInitAzureAuthzClient () {
70- repo .saveAuthorizedClient (
63+ authorizedRepo .saveAuthorizedClient (
7164 createAuthorizedClient (azure ),
7265 createAuthentication (),
7366 request ,
7467 response );
7568
76- OAuth2AuthorizedClient client = repo .loadAuthorizedClient (
69+ OAuth2AuthorizedClient client = authorizedRepo .loadAuthorizedClient (
7770 "graph" ,
7871 createAuthentication (),
7972 request );
@@ -88,13 +81,13 @@ public void loadInitAzureAuthzClient() {
8881
8982 @ Test
9083 public void saveAndLoadAzureAuthzClient () {
91- repo .saveAuthorizedClient (
84+ authorizedRepo .saveAuthorizedClient (
9285 createAuthorizedClient (graph ),
9386 createAuthentication (),
9487 request ,
9588 response );
9689
97- OAuth2AuthorizedClient client = repo .loadAuthorizedClient (
90+ OAuth2AuthorizedClient client = authorizedRepo .loadAuthorizedClient (
9891 "graph" ,
9992 createAuthentication (),
10093 request );
@@ -138,10 +131,4 @@ private boolean isTokenExpired(OAuth2AccessToken token) {
138131 .map (expiresAt -> expiresAt .isBefore (Instant .now ()))
139132 .orElse (false );
140133 }
141-
142- @ Configuration
143- @ SpringBootApplication
144- @ EnableWebSecurity
145- public static class DumbApp {
146- }
147134}
0 commit comments