Skip to content

Commit c29cbb6

Browse files
committed
Removed DefaultAuthorizationRequest from AbstractTokenGranter
1 parent 41f3dfe commit c29cbb6

File tree

7 files changed

+30
-18
lines changed

7 files changed

+30
-18
lines changed

spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/client/ClientCredentialsTokenGranter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
2020
import org.springframework.security.oauth2.common.OAuth2AccessToken;
2121
import org.springframework.security.oauth2.provider.AuthorizationRequest;
22+
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
2223
import org.springframework.security.oauth2.provider.ClientDetailsService;
2324
import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
2425
import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
@@ -32,8 +33,8 @@ public class ClientCredentialsTokenGranter extends AbstractTokenGranter {
3233
private static final String GRANT_TYPE = "client_credentials";
3334

3435
public ClientCredentialsTokenGranter(AuthorizationServerTokenServices tokenServices,
35-
ClientDetailsService clientDetailsService) {
36-
super(tokenServices, clientDetailsService, GRANT_TYPE);
36+
ClientDetailsService clientDetailsService, AuthorizationRequestManager authorizationRequestManager) {
37+
super(tokenServices, clientDetailsService, GRANT_TYPE, authorizationRequestManager);
3738
}
3839

3940
@Override

spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/code/AuthorizationCodeTokenGranter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.springframework.security.oauth2.provider.AuthorizationRequest;
2828
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
2929
import org.springframework.security.oauth2.provider.ClientDetailsService;
30-
import org.springframework.security.oauth2.provider.DefaultAuthorizationRequest;
3130
import org.springframework.security.oauth2.provider.OAuth2Authentication;
3231
import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
3332
import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
@@ -48,7 +47,7 @@ public class AuthorizationCodeTokenGranter extends AbstractTokenGranter {
4847

4948
public AuthorizationCodeTokenGranter(AuthorizationServerTokenServices tokenServices,
5049
AuthorizationCodeServices authorizationCodeServices, ClientDetailsService clientDetailsService, AuthorizationRequestManager authorizationRequestManager) {
51-
super(tokenServices, clientDetailsService, GRANT_TYPE);
50+
super(tokenServices, clientDetailsService, GRANT_TYPE, authorizationRequestManager);
5251
this.authorizationCodeServices = authorizationCodeServices;
5352
this.authorizationRequestManager = authorizationRequestManager;
5453
}

spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/implicit/ImplicitTokenGranter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.springframework.security.core.Authentication;
2222
import org.springframework.security.core.context.SecurityContextHolder;
2323
import org.springframework.security.oauth2.provider.AuthorizationRequest;
24+
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
2425
import org.springframework.security.oauth2.provider.ClientDetailsService;
2526
import org.springframework.security.oauth2.provider.OAuth2Authentication;
2627
import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
@@ -34,8 +35,9 @@ public class ImplicitTokenGranter extends AbstractTokenGranter {
3435

3536
private static final String GRANT_TYPE = "implicit";
3637

37-
public ImplicitTokenGranter(AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService) {
38-
super(tokenServices, clientDetailsService, GRANT_TYPE);
38+
public ImplicitTokenGranter(AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService,
39+
AuthorizationRequestManager authorizationRequestManager) {
40+
super(tokenServices, clientDetailsService, GRANT_TYPE, authorizationRequestManager);
3941
}
4042

4143
@Override

spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/password/ResourceOwnerPasswordTokenGranter.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.security.core.Authentication;
2727
import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
2828
import org.springframework.security.oauth2.provider.AuthorizationRequest;
29+
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
2930
import org.springframework.security.oauth2.provider.ClientDetailsService;
3031
import org.springframework.security.oauth2.provider.DefaultAuthorizationRequest;
3132
import org.springframework.security.oauth2.provider.OAuth2Authentication;
@@ -43,8 +44,8 @@ public class ResourceOwnerPasswordTokenGranter extends AbstractTokenGranter {
4344
private final AuthenticationManager authenticationManager;
4445

4546
public ResourceOwnerPasswordTokenGranter(AuthenticationManager authenticationManager,
46-
AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService) {
47-
super(tokenServices, clientDetailsService, GRANT_TYPE);
47+
AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, AuthorizationRequestManager authorizationRequestManager) {
48+
super(tokenServices, clientDetailsService, GRANT_TYPE, authorizationRequestManager);
4849
this.authenticationManager = authenticationManager;
4950
}
5051

@@ -76,4 +77,4 @@ protected OAuth2Authentication getOAuth2Authentication(AuthorizationRequest clie
7677

7778
return new OAuth2Authentication(request, userAuth);
7879
}
79-
}
80+
}

spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/refresh/RefreshTokenGranter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.springframework.security.oauth2.common.OAuth2AccessToken;
2020
import org.springframework.security.oauth2.provider.AuthorizationRequest;
21+
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
2122
import org.springframework.security.oauth2.provider.ClientDetailsService;
2223
import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
2324
import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
@@ -30,8 +31,9 @@ public class RefreshTokenGranter extends AbstractTokenGranter {
3031

3132
private static final String GRANT_TYPE = "refresh_token";
3233

33-
public RefreshTokenGranter(AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService) {
34-
super(tokenServices, clientDetailsService, GRANT_TYPE);
34+
public RefreshTokenGranter(AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService,
35+
AuthorizationRequestManager authorizationRequestManager) {
36+
super(tokenServices, clientDetailsService, GRANT_TYPE, authorizationRequestManager);
3537
}
3638

3739
@Override

spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/token/AbstractTokenGranter.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import org.springframework.security.oauth2.common.OAuth2AccessToken;
2020
import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
2121
import org.springframework.security.oauth2.provider.AuthorizationRequest;
22+
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
2223
import org.springframework.security.oauth2.provider.ClientDetails;
2324
import org.springframework.security.oauth2.provider.ClientDetailsService;
24-
import org.springframework.security.oauth2.provider.DefaultAuthorizationRequest;
2525
import org.springframework.security.oauth2.provider.OAuth2Authentication;
2626
import org.springframework.security.oauth2.provider.TokenGranter;
2727

@@ -34,16 +34,19 @@ public abstract class AbstractTokenGranter implements TokenGranter {
3434
protected final Log logger = LogFactory.getLog(getClass());
3535

3636
private final AuthorizationServerTokenServices tokenServices;
37+
38+
private final AuthorizationRequestManager authorizationRequestManager;
3739

3840
private final ClientDetailsService clientDetailsService;
3941

4042
private final String grantType;
4143

4244
protected AbstractTokenGranter(AuthorizationServerTokenServices tokenServices,
43-
ClientDetailsService clientDetailsService, String grantType) {
45+
ClientDetailsService clientDetailsService, String grantType, AuthorizationRequestManager authorizationRequestManager) {
4446
this.clientDetailsService = clientDetailsService;
4547
this.grantType = grantType;
4648
this.tokenServices = tokenServices;
49+
this.authorizationRequestManager = authorizationRequestManager;
4750
}
4851

4952
public OAuth2AccessToken grant(String grantType, AuthorizationRequest authorizationRequest) {
@@ -62,7 +65,7 @@ public OAuth2AccessToken grant(String grantType, AuthorizationRequest authorizat
6265
}
6366

6467
protected OAuth2AccessToken getAccessToken(AuthorizationRequest authorizationRequest) {
65-
DefaultAuthorizationRequest outgoingRequest = new DefaultAuthorizationRequest(authorizationRequest);
68+
AuthorizationRequest outgoingRequest = authorizationRequestManager.createFromExisting(authorizationRequest);
6669
outgoingRequest.setApproved(true);
6770
// FIXME: do we need to explicitly set approved flag here?
6871
return tokenServices.createAccessToken(getOAuth2Authentication(outgoingRequest));

spring-security-oauth2/src/test/java/org/springframework/security/oauth2/provider/password/TestResourceOwnerPasswordTokenGranter.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@
3030
import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
3131
import org.springframework.security.oauth2.common.exceptions.OAuth2Exception;
3232
import org.springframework.security.oauth2.provider.AuthorizationRequest;
33+
import org.springframework.security.oauth2.provider.AuthorizationRequestManager;
3334
import org.springframework.security.oauth2.provider.BaseClientDetails;
3435
import org.springframework.security.oauth2.provider.ClientDetails;
3536
import org.springframework.security.oauth2.provider.ClientDetailsService;
3637
import org.springframework.security.oauth2.provider.DefaultAuthorizationRequest;
38+
import org.springframework.security.oauth2.provider.DefaultAuthorizationRequestManager;
3739
import org.springframework.security.oauth2.provider.OAuth2Authentication;
3840
import org.springframework.security.oauth2.provider.token.DefaultTokenServices;
3941
import org.springframework.security.oauth2.provider.token.InMemoryTokenStore;
@@ -62,6 +64,8 @@ public ClientDetails loadClientByClientId(String clientId) throws OAuth2Exceptio
6264
};
6365

6466
private AuthorizationRequest authorizationRequest;
67+
68+
private AuthorizationRequestManager authorizationRequestManager = new DefaultAuthorizationRequestManager(clientDetailsService);
6569

6670
public TestResourceOwnerPasswordTokenGranter() {
6771
providerTokenServices.setTokenStore(new InMemoryTokenStore());
@@ -75,7 +79,7 @@ public TestResourceOwnerPasswordTokenGranter() {
7579
@Test
7680
public void testSunnyDay() {
7781
ResourceOwnerPasswordTokenGranter granter = new ResourceOwnerPasswordTokenGranter(authenticationManager,
78-
providerTokenServices, clientDetailsService);
82+
providerTokenServices, clientDetailsService, authorizationRequestManager);
7983
OAuth2AccessToken token = granter.grant("password", authorizationRequest);
8084
OAuth2Authentication authentication = providerTokenServices.loadAuthentication(token.getValue());
8185
assertTrue(authentication.isAuthenticated());
@@ -87,7 +91,7 @@ public void testBadCredentials() {
8791
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
8892
throw new BadCredentialsException("test");
8993
}
90-
}, providerTokenServices, clientDetailsService);
94+
}, providerTokenServices, clientDetailsService, authorizationRequestManager);
9195
granter.grant("password", authorizationRequest);
9296
}
9397

@@ -97,15 +101,15 @@ public void testAccountLocked() {
97101
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
98102
throw new LockedException("test");
99103
}
100-
}, providerTokenServices, clientDetailsService);
104+
}, providerTokenServices, clientDetailsService, authorizationRequestManager);
101105
granter.grant("password", authorizationRequest);
102106
}
103107

104108
@Test(expected = InvalidGrantException.class)
105109
public void testUnauthenticated() {
106110
validUser = new UsernamePasswordAuthenticationToken("foo", "bar");
107111
ResourceOwnerPasswordTokenGranter granter = new ResourceOwnerPasswordTokenGranter(authenticationManager,
108-
providerTokenServices, clientDetailsService);
112+
providerTokenServices, clientDetailsService, authorizationRequestManager);
109113
granter.grant("password", authorizationRequest);
110114
}
111115

0 commit comments

Comments
 (0)