Skip to content

Commit 2ad1036

Browse files
committed
1 parent 63c7a45 commit 2ad1036

File tree

7 files changed

+376
-262
lines changed

7 files changed

+376
-262
lines changed

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

-10
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
*
3434
* @author Joe Grandja
3535
* @author Krisztian Toth
36-
* @author Madhu Bhat
3736
* @since 0.0.1
3837
* @see RegisteredClient
3938
* @see OAuth2AccessToken
@@ -75,15 +74,6 @@ public OAuth2AccessToken getAccessToken() {
7574
return this.accessToken;
7675
}
7776

78-
/**
79-
* Sets the access token {@link OAuth2AccessToken} in the {@link OAuth2Authorization}.
80-
*
81-
* @param accessToken the access token
82-
*/
83-
public final void setAccessToken(OAuth2AccessToken accessToken) {
84-
this.accessToken = accessToken;
85-
}
86-
8777
/**
8878
* Returns the attribute(s) associated to the authorization.
8979
*

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
import org.springframework.security.authentication.AbstractAuthenticationToken;
1919
import org.springframework.security.core.Authentication;
20-
import org.springframework.security.core.SpringSecurityCoreVersion;
2120
import org.springframework.security.oauth2.core.OAuth2AccessToken;
21+
import org.springframework.security.oauth2.server.authorization.Version;
2222
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
2323

2424
import java.util.Collections;
@@ -28,7 +28,7 @@
2828
* @author Madhu Bhat
2929
*/
3030
public class OAuth2AccessTokenAuthenticationToken extends AbstractAuthenticationToken {
31-
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
31+
private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
3232
private RegisteredClient registeredClient;
3333
private Authentication clientPrincipal;
3434
private OAuth2AccessToken accessToken;
@@ -52,9 +52,9 @@ public Object getPrincipal() {
5252
}
5353

5454
/**
55-
* Returns the access token {@link OAuth2AccessToken}.
55+
* Returns the {@link OAuth2AccessToken access token}.
5656
*
57-
* @return the access token
57+
* @return the {@link OAuth2AccessToken}
5858
*/
5959
public OAuth2AccessToken getAccessToken() {
6060
return this.accessToken;

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

+17-8
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import org.springframework.lang.Nullable;
1919
import org.springframework.security.authentication.AbstractAuthenticationToken;
2020
import org.springframework.security.core.Authentication;
21-
import org.springframework.security.core.SpringSecurityCoreVersion;
21+
import org.springframework.security.oauth2.server.authorization.Version;
2222

2323
import java.util.Collections;
2424

@@ -27,7 +27,7 @@
2727
* @author Madhu Bhat
2828
*/
2929
public class OAuth2AuthorizationCodeAuthenticationToken extends AbstractAuthenticationToken {
30-
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
30+
private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
3131
private String code;
3232
private Authentication clientPrincipal;
3333
private String clientId;
@@ -37,26 +37,26 @@ public OAuth2AuthorizationCodeAuthenticationToken(String code,
3737
Authentication clientPrincipal, @Nullable String redirectUri) {
3838
super(Collections.emptyList());
3939
this.code = code;
40-
this.redirectUri = redirectUri;
4140
this.clientPrincipal = clientPrincipal;
41+
this.redirectUri = redirectUri;
4242
}
4343

4444
public OAuth2AuthorizationCodeAuthenticationToken(String code,
4545
String clientId, @Nullable String redirectUri) {
4646
super(Collections.emptyList());
4747
this.code = code;
48-
this.redirectUri = redirectUri;
4948
this.clientId = clientId;
49+
this.redirectUri = redirectUri;
5050
}
5151

5252
@Override
53-
public Object getCredentials() {
54-
return null;
53+
public Object getPrincipal() {
54+
return this.clientPrincipal != null ? this.clientPrincipal : this.clientId;
5555
}
5656

5757
@Override
58-
public Object getPrincipal() {
59-
return null;
58+
public Object getCredentials() {
59+
return "";
6060
}
6161

6262
/**
@@ -67,4 +67,13 @@ public Object getPrincipal() {
6767
public String getCode() {
6868
return this.code;
6969
}
70+
71+
/**
72+
* Returns the redirectUri.
73+
*
74+
* @return the redirectUri
75+
*/
76+
public String getRedirectUri() {
77+
return this.redirectUri;
78+
}
7079
}

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

+2-17
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
3939
import org.springframework.security.web.util.matcher.RequestMatcher;
4040
import org.springframework.util.Assert;
41-
import org.springframework.util.LinkedMultiValueMap;
4241
import org.springframework.util.MultiValueMap;
4342
import org.springframework.util.StringUtils;
4443
import org.springframework.web.filter.OncePerRequestFilter;
@@ -53,7 +52,6 @@
5352
import java.util.Base64;
5453
import java.util.Collections;
5554
import java.util.HashSet;
56-
import java.util.Map;
5755
import java.util.Set;
5856

5957
/**
@@ -123,7 +121,7 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
123121
// Validate the request to ensure that all required parameters are present and valid
124122
// ---------------
125123

126-
MultiValueMap<String, String> parameters = getParameters(request);
124+
MultiValueMap<String, String> parameters = OAuth2EndpointUtils.getParameters(request);
127125
String stateParameter = parameters.getFirst(OAuth2ParameterNames.STATE);
128126

129127
// client_id (REQUIRED)
@@ -258,7 +256,7 @@ private static boolean isPrincipalAuthenticated(Authentication principal) {
258256
}
259257

260258
private static OAuth2AuthorizationRequest convertAuthorizationRequest(HttpServletRequest request) {
261-
MultiValueMap<String, String> parameters = getParameters(request);
259+
MultiValueMap<String, String> parameters = OAuth2EndpointUtils.getParameters(request);
262260

263261
Set<String> scopes = Collections.emptySet();
264262
if (parameters.containsKey(OAuth2ParameterNames.SCOPE)) {
@@ -282,17 +280,4 @@ private static OAuth2AuthorizationRequest convertAuthorizationRequest(HttpServle
282280
.forEach(e -> additionalParameters.put(e.getKey(), e.getValue().get(0))))
283281
.build();
284282
}
285-
286-
private static MultiValueMap<String, String> getParameters(HttpServletRequest request) {
287-
Map<String, String[]> parameterMap = request.getParameterMap();
288-
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(parameterMap.size());
289-
parameterMap.forEach((key, values) -> {
290-
if (values.length > 0) {
291-
for (String value : values) {
292-
parameters.add(key, value);
293-
}
294-
}
295-
});
296-
return parameters;
297-
}
298283
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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.web;
17+
18+
import org.springframework.util.LinkedMultiValueMap;
19+
import org.springframework.util.MultiValueMap;
20+
21+
import javax.servlet.http.HttpServletRequest;
22+
import java.util.Map;
23+
24+
/**
25+
* Utility methods for the OAuth 2.0 Protocol Endpoints.
26+
*
27+
* @author Joe Grandja
28+
* @since 0.0.1
29+
* @see OAuth2AuthorizationEndpointFilter
30+
* @see OAuth2TokenEndpointFilter
31+
*/
32+
final class OAuth2EndpointUtils {
33+
34+
private OAuth2EndpointUtils() {
35+
}
36+
37+
static MultiValueMap<String, String> getParameters(HttpServletRequest request) {
38+
Map<String, String[]> parameterMap = request.getParameterMap();
39+
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>(parameterMap.size());
40+
parameterMap.forEach((key, values) -> {
41+
if (values.length > 0) {
42+
for (String value : values) {
43+
parameters.add(key, value);
44+
}
45+
}
46+
});
47+
return parameters;
48+
}
49+
}

0 commit comments

Comments
 (0)