Skip to content

Commit c6d8560

Browse files
author
Eugen
committed
Merge pull request eugenp#151 from Doha2012/master
use enhancer
2 parents 45954f1 + 5dedba2 commit c6d8560

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.baeldung.config;
2+
3+
import java.io.Serializable;
4+
5+
import org.springframework.http.HttpHeaders;
6+
import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
7+
import org.springframework.security.oauth2.client.token.AccessTokenRequest;
8+
import org.springframework.security.oauth2.client.token.RequestEnhancer;
9+
import org.springframework.util.MultiValueMap;
10+
11+
public class CustomRequestEnhancer implements RequestEnhancer, Serializable {
12+
/**
13+
*
14+
*/
15+
private static final long serialVersionUID = 1L;
16+
17+
@Override
18+
public void enhance(AccessTokenRequest request, OAuth2ProtectedResourceDetails resource, MultiValueMap<String, String> form, HttpHeaders headers) {
19+
System.out.println("called===");
20+
form.set("duration", "permanent");
21+
}
22+
}

spring-security-oauth/src/main/java/org/baeldung/config/MyAuthorizationCodeAccessTokenProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public String obtainAuthorizationCode(OAuth2ProtectedResourceDetails details, Ac
5656
form.putAll(getParametersForAuthorizeRequest(resource, request));
5757
}
5858
form.set("duration", "permanent");
59+
System.out.println("===== at enhancer point ===");
5960
authorizationRequestEnhancer.enhance(request, resource, form, headers);
6061
final AccessTokenRequest copy = request;
6162

@@ -192,6 +193,7 @@ private UserRedirectRequiredException getRedirectForAuthorization(AuthorizationC
192193
requestParameters.put("response_type", "code");
193194
requestParameters.put("client_id", resource.getClientId());
194195
requestParameters.put("duration", "permanent");
196+
System.out.println("===== at private message redirect ===");
195197

196198
String redirectUri = resource.getRedirectUri(request);
197199
if (redirectUri != null) {

spring-security-oauth/src/main/java/org/baeldung/config/WebConfig.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.springframework.security.oauth2.client.token.AccessTokenProvider;
1616
import org.springframework.security.oauth2.client.token.AccessTokenProviderChain;
1717
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider;
18+
import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeAccessTokenProvider;
1819
import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails;
1920
import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitAccessTokenProvider;
2021
import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider;
@@ -93,8 +94,9 @@ public OAuth2ProtectedResourceDetails reddit() {
9394
@Bean
9495
public OAuth2RestTemplate redditRestTemplate(OAuth2ClientContext clientContext) {
9596
OAuth2RestTemplate template = new OAuth2RestTemplate(reddit(), clientContext);
96-
AccessTokenProvider accessTokenProvider = new AccessTokenProviderChain(Arrays.<AccessTokenProvider> asList(new MyAuthorizationCodeAccessTokenProvider(), new ImplicitAccessTokenProvider(), new ResourceOwnerPasswordAccessTokenProvider(),
97-
new ClientCredentialsAccessTokenProvider()));
97+
AuthorizationCodeAccessTokenProvider authProvider = new AuthorizationCodeAccessTokenProvider();
98+
authProvider.setAuthorizationRequestEnhancer(new CustomRequestEnhancer());
99+
AccessTokenProvider accessTokenProvider = new AccessTokenProviderChain(Arrays.<AccessTokenProvider> asList(authProvider, new ImplicitAccessTokenProvider(), new ResourceOwnerPasswordAccessTokenProvider(), new ClientCredentialsAccessTokenProvider()));
98100
template.setAccessTokenProvider(accessTokenProvider);
99101
return template;
100102
}

0 commit comments

Comments
 (0)