|
104 | 104 | import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository; |
105 | 105 | import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients; |
106 | 106 | import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration; |
| 107 | +import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder; |
107 | 108 | import org.springframework.security.oauth2.server.authorization.jackson2.TestingAuthenticationTokenMixin; |
108 | 109 | import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings; |
109 | 110 | import org.springframework.security.oauth2.server.authorization.settings.ClientSettings; |
|
125 | 126 | import org.springframework.security.web.context.HttpSessionSecurityContextRepository; |
126 | 127 | import org.springframework.security.web.context.SecurityContextRepository; |
127 | 128 | import org.springframework.security.web.util.matcher.RequestMatcher; |
| 129 | +import org.springframework.stereotype.Controller; |
128 | 130 | import org.springframework.test.web.servlet.MockMvc; |
129 | 131 | import org.springframework.test.web.servlet.MvcResult; |
130 | 132 | import org.springframework.util.LinkedMultiValueMap; |
131 | 133 | import org.springframework.util.MultiValueMap; |
132 | 134 | import org.springframework.util.StringUtils; |
| 135 | +import org.springframework.web.bind.annotation.GetMapping; |
| 136 | +import org.springframework.web.bind.annotation.ResponseBody; |
133 | 137 | import org.springframework.web.util.UriComponents; |
134 | 138 | import org.springframework.web.util.UriComponentsBuilder; |
135 | 139 | import org.springframework.web.util.UriUtils; |
@@ -746,6 +750,15 @@ public void requestWhenCustomConsentPageConfiguredThenRedirect() throws Exceptio |
746 | 750 | assertThat(authorization).isNotNull(); |
747 | 751 | } |
748 | 752 |
|
| 753 | + // gh-1668 |
| 754 | + @Test |
| 755 | + public void requestWhenCustomConsentPageConfiguredThenAuthorizationServerContextIsAccessible() throws Exception { |
| 756 | + this.spring.register(AuthorizationServerConfigurationCustomConsentPageAccessAuthorizationServerContext.class) |
| 757 | + .autowire(); |
| 758 | + |
| 759 | + this.mvc.perform(get(consentPage).with(user("user"))).andExpect(status().isOk()); |
| 760 | + } |
| 761 | + |
749 | 762 | @Test |
750 | 763 | public void requestWhenCustomConsentCustomizerConfiguredThenUsed() throws Exception { |
751 | 764 | this.spring.register(AuthorizationServerConfigurationCustomConsentRequest.class).autowire(); |
@@ -1209,6 +1222,26 @@ SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) th |
1209 | 1222 |
|
1210 | 1223 | } |
1211 | 1224 |
|
| 1225 | + @EnableWebSecurity |
| 1226 | + @Configuration(proxyBeanMethods = false) |
| 1227 | + static class AuthorizationServerConfigurationCustomConsentPageAccessAuthorizationServerContext |
| 1228 | + extends AuthorizationServerConfigurationCustomConsentPage { |
| 1229 | + |
| 1230 | + @Controller |
| 1231 | + class ConsentController { |
| 1232 | + |
| 1233 | + @GetMapping("/oauth2/consent") |
| 1234 | + @ResponseBody |
| 1235 | + String consent() { |
| 1236 | + // Ensure the AuthorizationServerContext is accessible |
| 1237 | + AuthorizationServerContextHolder.getContext().getIssuer(); |
| 1238 | + return ""; |
| 1239 | + } |
| 1240 | + |
| 1241 | + } |
| 1242 | + |
| 1243 | + } |
| 1244 | + |
1212 | 1245 | @EnableWebSecurity |
1213 | 1246 | @Configuration(proxyBeanMethods = false) |
1214 | 1247 | static class AuthorizationServerConfigurationCustomConsentRequest extends AuthorizationServerConfiguration { |
|
0 commit comments