Skip to content

Commit a865ae1

Browse files
committed
Add OAuth2AuthorizationAttributeNames
Issue spring-projectsgh-43
1 parent 0d5305a commit a865ae1

File tree

7 files changed

+55
-15
lines changed

7 files changed

+55
-15
lines changed

core/src/main/java/org/springframework/security/oauth2/server/authorization/InMemoryOAuth2AuthorizationService.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package org.springframework.security.oauth2.server.authorization;
1717

18-
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
1918
import org.springframework.util.Assert;
2019

2120
import java.util.List;
@@ -66,7 +65,7 @@ public OAuth2Authorization findByTokenAndTokenType(String token, TokenType token
6665

6766
private boolean hasToken(OAuth2Authorization authorization, String token, TokenType tokenType) {
6867
if (TokenType.AUTHORIZATION_CODE.equals(tokenType)) {
69-
return token.equals(authorization.getAttributes().get(OAuth2ParameterNames.class.getName().concat(".CODE")));
68+
return token.equals(authorization.getAttribute(OAuth2AuthorizationAttributeNames.CODE));
7069
} else if (TokenType.ACCESS_TOKEN.equals(tokenType)) {
7170
return authorization.getAccessToken() != null &&
7271
authorization.getAccessToken().getTokenValue().equals(token);

core/src/main/java/org/springframework/security/oauth2/server/authorization/OAuth2Authorization.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.springframework.security.oauth2.server.authorization;
1717

1818
import org.springframework.security.oauth2.core.OAuth2AccessToken;
19-
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
2019
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
2120
import org.springframework.util.Assert;
2221

@@ -197,7 +196,7 @@ public Builder attributes(Consumer<Map<String, Object>> attributesConsumer) {
197196
*/
198197
public OAuth2Authorization build() {
199198
Assert.hasText(this.principalName, "principalName cannot be empty");
200-
Assert.notNull(this.attributes.get(OAuth2ParameterNames.class.getName().concat(".CODE")), "authorization code cannot be null");
199+
Assert.notNull(this.attributes.get(OAuth2AuthorizationAttributeNames.CODE), "authorization code cannot be null");
201200

202201
OAuth2Authorization authorization = new OAuth2Authorization();
203202
authorization.registeredClientId = this.registeredClientId;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright 2020 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.springframework.security.oauth2.server.authorization;
17+
18+
19+
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
20+
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
21+
22+
/**
23+
* The name of the attributes that may be contained in the
24+
* {@link OAuth2Authorization#getAttributes()} {@code Map}.
25+
*
26+
* @author Joe Grandja
27+
* @since 0.0.1
28+
* @see OAuth2Authorization#getAttributes()
29+
*/
30+
public interface OAuth2AuthorizationAttributeNames {
31+
32+
/**
33+
* The name of the attribute used for the {@link OAuth2ParameterNames#CODE} parameter.
34+
*/
35+
String CODE = OAuth2Authorization.class.getName().concat(".CODE");
36+
37+
/**
38+
* The name of the attribute used for the {@link OAuth2AuthorizationRequest}.
39+
*/
40+
String AUTHORIZATION_REQUEST = OAuth2Authorization.class.getName().concat(".AUTHORIZATION_REQUEST");
41+
42+
}

core/src/main/java/org/springframework/security/oauth2/server/authorization/web/OAuth2AuthorizationEndpointFilter.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponseType;
3030
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
3131
import org.springframework.security.oauth2.server.authorization.OAuth2Authorization;
32+
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationAttributeNames;
3233
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
3334
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
3435
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
@@ -184,8 +185,8 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
184185

185186
OAuth2Authorization authorization = OAuth2Authorization.withRegisteredClient(registeredClient)
186187
.principalName(principal.getName())
187-
.attribute(OAuth2ParameterNames.class.getName().concat(".CODE"), code)
188-
.attribute(OAuth2AuthorizationRequest.class.getName(), authorizationRequest)
188+
.attribute(OAuth2AuthorizationAttributeNames.CODE, code)
189+
.attribute(OAuth2AuthorizationAttributeNames.AUTHORIZATION_REQUEST, authorizationRequest)
189190
.build();
190191

191192
this.authorizationService.save(authorization);

core/src/test/java/org/springframework/security/oauth2/server/authorization/InMemoryOAuth2AuthorizationServiceTests.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import org.junit.Before;
1919
import org.junit.Test;
2020
import org.springframework.security.oauth2.core.OAuth2AccessToken;
21-
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
2221
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
2322
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
2423

@@ -62,7 +61,7 @@ public void saveWhenAuthorizationNullThenThrowIllegalArgumentException() {
6261
public void saveWhenAuthorizationProvidedThenSaved() {
6362
OAuth2Authorization expectedAuthorization = OAuth2Authorization.withRegisteredClient(REGISTERED_CLIENT)
6463
.principalName(PRINCIPAL_NAME)
65-
.attribute(OAuth2ParameterNames.class.getName().concat(".CODE"), AUTHORIZATION_CODE)
64+
.attribute(OAuth2AuthorizationAttributeNames.CODE, AUTHORIZATION_CODE)
6665
.build();
6766
this.authorizationService.save(expectedAuthorization);
6867

@@ -89,7 +88,7 @@ public void findByTokenAndTokenTypeWhenTokenTypeNullThenThrowIllegalArgumentExce
8988
public void findByTokenAndTokenTypeWhenTokenTypeAuthorizationCodeThenFound() {
9089
OAuth2Authorization authorization = OAuth2Authorization.withRegisteredClient(REGISTERED_CLIENT)
9190
.principalName(PRINCIPAL_NAME)
92-
.attribute(OAuth2ParameterNames.class.getName().concat(".CODE"), AUTHORIZATION_CODE)
91+
.attribute(OAuth2AuthorizationAttributeNames.CODE, AUTHORIZATION_CODE)
9392
.build();
9493
this.authorizationService = new InMemoryOAuth2AuthorizationService(Collections.singletonList(authorization));
9594

@@ -104,7 +103,7 @@ public void findByTokenAndTokenTypeWhenTokenTypeAccessTokenThenFound() {
104103
"access-token", Instant.now().minusSeconds(60), Instant.now());
105104
OAuth2Authorization authorization = OAuth2Authorization.withRegisteredClient(REGISTERED_CLIENT)
106105
.principalName(PRINCIPAL_NAME)
107-
.attribute(OAuth2ParameterNames.class.getName().concat(".CODE"), AUTHORIZATION_CODE)
106+
.attribute(OAuth2AuthorizationAttributeNames.CODE, AUTHORIZATION_CODE)
108107
.accessToken(accessToken)
109108
.build();
110109
this.authorizationService.save(authorization);

core/src/test/java/org/springframework/security/oauth2/server/authorization/OAuth2AuthorizationTests.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import org.junit.Test;
1919
import org.springframework.security.oauth2.core.OAuth2AccessToken;
20-
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
2120
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
2221
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
2322

@@ -85,13 +84,13 @@ public void buildWhenAllAttributesAreProvidedThenAllAttributesAreSet() {
8584
OAuth2Authorization authorization = OAuth2Authorization.withRegisteredClient(REGISTERED_CLIENT)
8685
.principalName(PRINCIPAL_NAME)
8786
.accessToken(ACCESS_TOKEN)
88-
.attribute(OAuth2ParameterNames.class.getName().concat(".CODE"), AUTHORIZATION_CODE)
87+
.attribute(OAuth2AuthorizationAttributeNames.CODE, AUTHORIZATION_CODE)
8988
.build();
9089

9190
assertThat(authorization.getRegisteredClientId()).isEqualTo(REGISTERED_CLIENT.getId());
9291
assertThat(authorization.getPrincipalName()).isEqualTo(PRINCIPAL_NAME);
9392
assertThat(authorization.getAccessToken()).isEqualTo(ACCESS_TOKEN);
9493
assertThat(authorization.getAttributes()).containsExactly(
95-
entry(OAuth2ParameterNames.class.getName().concat(".CODE"), AUTHORIZATION_CODE));
94+
entry(OAuth2AuthorizationAttributeNames.CODE, AUTHORIZATION_CODE));
9695
}
9796
}

core/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2AuthorizationEndpointFilterTests.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponseType;
3131
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
3232
import org.springframework.security.oauth2.server.authorization.OAuth2Authorization;
33+
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationAttributeNames;
3334
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
3435
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
3536
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
@@ -365,10 +366,10 @@ public void doFilterWhenAuthorizationRequestValidThenAuthorizationResponse() thr
365366
assertThat(authorization.getRegisteredClientId()).isEqualTo(registeredClient.getId());
366367
assertThat(authorization.getPrincipalName()).isEqualTo(this.authentication.getPrincipal().toString());
367368

368-
String code = authorization.getAttribute(OAuth2ParameterNames.class.getName().concat(".CODE"));
369+
String code = authorization.getAttribute(OAuth2AuthorizationAttributeNames.CODE);
369370
assertThat(code).isNotNull();
370371

371-
OAuth2AuthorizationRequest authorizationRequest = authorization.getAttribute(OAuth2AuthorizationRequest.class.getName());
372+
OAuth2AuthorizationRequest authorizationRequest = authorization.getAttribute(OAuth2AuthorizationAttributeNames.AUTHORIZATION_REQUEST);
372373
assertThat(authorizationRequest).isNotNull();
373374
assertThat(authorizationRequest.getAuthorizationUri()).isEqualTo("http://localhost/oauth2/authorize");
374375
assertThat(authorizationRequest.getGrantType()).isEqualTo(AuthorizationGrantType.AUTHORIZATION_CODE);

0 commit comments

Comments
 (0)