File tree 5 files changed +31
-28
lines changed
oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication
5 files changed +31
-28
lines changed Original file line number Diff line number Diff line change 16
16
package org .springframework .security .oauth2 .server .authorization .authentication ;
17
17
18
18
import org .springframework .security .authentication .AuthenticationProvider ;
19
+ import org .springframework .security .core .Authentication ;
19
20
import org .springframework .security .oauth2 .core .AbstractOAuth2Token ;
21
+ import org .springframework .security .oauth2 .core .OAuth2AuthenticationException ;
22
+ import org .springframework .security .oauth2 .core .OAuth2Error ;
23
+ import org .springframework .security .oauth2 .core .OAuth2ErrorCodes ;
20
24
import org .springframework .security .oauth2 .core .OAuth2RefreshToken ;
21
25
import org .springframework .security .oauth2 .server .authorization .OAuth2Authorization ;
22
26
import org .springframework .security .oauth2 .server .authorization .token .OAuth2AuthorizationCode ;
@@ -34,6 +38,17 @@ final class OAuth2AuthenticationProviderUtils {
34
38
private OAuth2AuthenticationProviderUtils () {
35
39
}
36
40
41
+ static OAuth2ClientAuthenticationToken getAuthenticatedClientElseThrowInvalidClient (Authentication authentication ) {
42
+ OAuth2ClientAuthenticationToken clientPrincipal = null ;
43
+ if (OAuth2ClientAuthenticationToken .class .isAssignableFrom (authentication .getPrincipal ().getClass ())) {
44
+ clientPrincipal = (OAuth2ClientAuthenticationToken ) authentication .getPrincipal ();
45
+ }
46
+ if (clientPrincipal != null && clientPrincipal .isAuthenticated ()) {
47
+ return clientPrincipal ;
48
+ }
49
+ throw new OAuth2AuthenticationException (new OAuth2Error (OAuth2ErrorCodes .INVALID_CLIENT ));
50
+ }
51
+
37
52
static <T extends AbstractOAuth2Token > OAuth2Authorization invalidate (
38
53
OAuth2Authorization authorization , T token ) {
39
54
Original file line number Diff line number Diff line change 40
40
41
41
import java .util .Set ;
42
42
43
+ import static org .springframework .security .oauth2 .server .authorization .authentication .OAuth2AuthenticationProviderUtils .getAuthenticatedClientElseThrowInvalidClient ;
44
+
43
45
/**
44
46
* An {@link AuthenticationProvider} implementation for the OAuth 2.0 Authorization Code Grant.
45
47
*
@@ -81,13 +83,8 @@ public Authentication authenticate(Authentication authentication) throws Authent
81
83
OAuth2AuthorizationCodeAuthenticationToken authorizationCodeAuthentication =
82
84
(OAuth2AuthorizationCodeAuthenticationToken ) authentication ;
83
85
84
- OAuth2ClientAuthenticationToken clientPrincipal = null ;
85
- if (OAuth2ClientAuthenticationToken .class .isAssignableFrom (authorizationCodeAuthentication .getPrincipal ().getClass ())) {
86
- clientPrincipal = (OAuth2ClientAuthenticationToken ) authorizationCodeAuthentication .getPrincipal ();
87
- }
88
- if (clientPrincipal == null || !clientPrincipal .isAuthenticated ()) {
89
- throw new OAuth2AuthenticationException (new OAuth2Error (OAuth2ErrorCodes .INVALID_CLIENT ));
90
- }
86
+ OAuth2ClientAuthenticationToken clientPrincipal =
87
+ getAuthenticatedClientElseThrowInvalidClient (authorizationCodeAuthentication );
91
88
RegisteredClient registeredClient = clientPrincipal .getRegisteredClient ();
92
89
93
90
OAuth2Authorization authorization = this .authorizationService .findByToken (
Original file line number Diff line number Diff line change 37
37
import java .util .Set ;
38
38
import java .util .stream .Collectors ;
39
39
40
+ import static org .springframework .security .oauth2 .server .authorization .authentication .OAuth2AuthenticationProviderUtils .getAuthenticatedClientElseThrowInvalidClient ;
41
+
40
42
/**
41
43
* An {@link AuthenticationProvider} implementation for the OAuth 2.0 Client Credentials Grant.
42
44
*
@@ -72,13 +74,8 @@ public Authentication authenticate(Authentication authentication) throws Authent
72
74
OAuth2ClientCredentialsAuthenticationToken clientCredentialsAuthentication =
73
75
(OAuth2ClientCredentialsAuthenticationToken ) authentication ;
74
76
75
- OAuth2ClientAuthenticationToken clientPrincipal = null ;
76
- if (OAuth2ClientAuthenticationToken .class .isAssignableFrom (clientCredentialsAuthentication .getPrincipal ().getClass ())) {
77
- clientPrincipal = (OAuth2ClientAuthenticationToken ) clientCredentialsAuthentication .getPrincipal ();
78
- }
79
- if (clientPrincipal == null || !clientPrincipal .isAuthenticated ()) {
80
- throw new OAuth2AuthenticationException (new OAuth2Error (OAuth2ErrorCodes .INVALID_CLIENT ));
81
- }
77
+ OAuth2ClientAuthenticationToken clientPrincipal =
78
+ getAuthenticatedClientElseThrowInvalidClient (clientCredentialsAuthentication );
82
79
RegisteredClient registeredClient = clientPrincipal .getRegisteredClient ();
83
80
84
81
if (!registeredClient .getAuthorizationGrantTypes ().contains (AuthorizationGrantType .CLIENT_CREDENTIALS )) {
Original file line number Diff line number Diff line change 38
38
import java .time .Instant ;
39
39
import java .util .Set ;
40
40
41
+ import static org .springframework .security .oauth2 .server .authorization .authentication .OAuth2AuthenticationProviderUtils .getAuthenticatedClientElseThrowInvalidClient ;
42
+
41
43
/**
42
44
* An {@link AuthenticationProvider} implementation for the OAuth 2.0 Refresh Token Grant.
43
45
*
@@ -73,13 +75,8 @@ public Authentication authenticate(Authentication authentication) throws Authent
73
75
OAuth2RefreshTokenAuthenticationToken refreshTokenAuthentication =
74
76
(OAuth2RefreshTokenAuthenticationToken ) authentication ;
75
77
76
- OAuth2ClientAuthenticationToken clientPrincipal = null ;
77
- if (OAuth2ClientAuthenticationToken .class .isAssignableFrom (refreshTokenAuthentication .getPrincipal ().getClass ())) {
78
- clientPrincipal = (OAuth2ClientAuthenticationToken ) refreshTokenAuthentication .getPrincipal ();
79
- }
80
- if (clientPrincipal == null || !clientPrincipal .isAuthenticated ()) {
81
- throw new OAuth2AuthenticationException (new OAuth2Error (OAuth2ErrorCodes .INVALID_CLIENT ));
82
- }
78
+ OAuth2ClientAuthenticationToken clientPrincipal =
79
+ getAuthenticatedClientElseThrowInvalidClient (refreshTokenAuthentication );
83
80
RegisteredClient registeredClient = clientPrincipal .getRegisteredClient ();
84
81
85
82
OAuth2Authorization authorization = this .authorizationService .findByToken (
Original file line number Diff line number Diff line change 29
29
import org .springframework .util .Assert ;
30
30
import org .springframework .util .StringUtils ;
31
31
32
+ import static org .springframework .security .oauth2 .server .authorization .authentication .OAuth2AuthenticationProviderUtils .getAuthenticatedClientElseThrowInvalidClient ;
33
+
32
34
/**
33
35
* An {@link AuthenticationProvider} implementation for OAuth 2.0 Token Revocation.
34
36
*
@@ -57,13 +59,8 @@ public Authentication authenticate(Authentication authentication) throws Authent
57
59
OAuth2TokenRevocationAuthenticationToken tokenRevocationAuthentication =
58
60
(OAuth2TokenRevocationAuthenticationToken ) authentication ;
59
61
60
- OAuth2ClientAuthenticationToken clientPrincipal = null ;
61
- if (OAuth2ClientAuthenticationToken .class .isAssignableFrom (tokenRevocationAuthentication .getPrincipal ().getClass ())) {
62
- clientPrincipal = (OAuth2ClientAuthenticationToken ) tokenRevocationAuthentication .getPrincipal ();
63
- }
64
- if (clientPrincipal == null || !clientPrincipal .isAuthenticated ()) {
65
- throw new OAuth2AuthenticationException (new OAuth2Error (OAuth2ErrorCodes .INVALID_CLIENT ));
66
- }
62
+ OAuth2ClientAuthenticationToken clientPrincipal =
63
+ getAuthenticatedClientElseThrowInvalidClient (tokenRevocationAuthentication );
67
64
RegisteredClient registeredClient = clientPrincipal .getRegisteredClient ();
68
65
69
66
TokenType tokenType = null ;
You can’t perform that action at this time.
0 commit comments