Example usage for org.springframework.security.oauth2.client.token.grant.code AuthorizationCodeAccessTokenProvider AuthorizationCodeAccessTokenProvider

List of usage examples for org.springframework.security.oauth2.client.token.grant.code AuthorizationCodeAccessTokenProvider AuthorizationCodeAccessTokenProvider

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.client.token.grant.code AuthorizationCodeAccessTokenProvider AuthorizationCodeAccessTokenProvider.

Prototype

AuthorizationCodeAccessTokenProvider

Source Link

Usage

From source file:cloud.api.gateway.ApiGatewayApplication.java

@Bean
UserInfoRestTemplateCustomizer userInfoRestTemplateCustomizer(SpringClientFactory springClientFactory) {
    return template -> {
        AccessTokenProviderChain accessTokenProviderChain = Stream
                .of(new AuthorizationCodeAccessTokenProvider(), new ImplicitAccessTokenProvider(),
                        new ResourceOwnerPasswordAccessTokenProvider(),
                        new ClientCredentialsAccessTokenProvider())
                .peek(tp -> tp.setRequestFactory(new RibbonClientHttpRequestFactory(springClientFactory)))
                .collect(Collectors.collectingAndThen(Collectors.toList(), AccessTokenProviderChain::new));
        template.setAccessTokenProvider(accessTokenProviderChain);
    };/* ww w  .  j av  a2s.com*/
}

From source file:ltistarter.oauth.OAuthUtils.java

public static ResponseEntity sendOAuth2Request(String url, String clientId, String clientSecret,
        String accessTokenURI, Map<String, String> params) {
    assert url != null;
    assert clientId != null;
    assert clientSecret != null;
    AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider();
    BaseOAuth2ProtectedResourceDetails resource = new BaseOAuth2ProtectedResourceDetails();
    resource.setClientAuthenticationScheme(AuthenticationScheme.form);
    resource.setClientId(clientId);/*  ww  w  . ja va2 s.c o m*/
    resource.setClientSecret(clientSecret);
    resource.setAccessTokenUri(accessTokenURI);
    resource.setGrantType("access");
    OAuth2AccessToken accessToken = provider.obtainAccessToken(resource, new DefaultAccessTokenRequest());
    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resource,
            new DefaultOAuth2ClientContext(accessToken));
    ResponseEntity<String> response = restTemplate.postForEntity(url, params, String.class,
            (Map<String, ?>) null);
    return response;
}

From source file:sparklr.common.AbstractEmptyAuthorizationCodeProviderTests.java

@BeforeOAuth2Context
public void setupAccessTokenProvider() {
    accessTokenProvider = new AuthorizationCodeAccessTokenProvider() {

        private ResponseExtractor<OAuth2AccessToken> extractor = super.getResponseExtractor();

        private ResponseExtractor<ResponseEntity<Void>> authExtractor = super.getAuthorizationResponseExtractor();

        private ResponseErrorHandler errorHandler = super.getResponseErrorHandler();

        @Override//from   ww w. j a  v  a2s  . c o  m
        protected ResponseErrorHandler getResponseErrorHandler() {
            return new DefaultResponseErrorHandler() {
                public void handleError(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    errorHandler.handleError(response);
                }
            };
        }

        @Override
        protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
            return new ResponseExtractor<OAuth2AccessToken>() {

                public OAuth2AccessToken extractData(ClientHttpResponse response) throws IOException {
                    try {
                        response.getHeaders();
                        response.getStatusCode();
                        tokenEndpointResponse = response;
                        return extractor.extractData(response);
                    } catch (ResourceAccessException e) {
                        return null;
                    }
                }

            };
        }

        @Override
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {

                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    return authExtractor.extractData(response);
                }
            };
        }
    };
    context.setAccessTokenProvider(getAccessTokenProvider());
}

From source file:sample.jsp.WelcomeController.java

@Bean
public AccessTokenProvider accessTokenProviderChain() {
    return new AccessTokenProviderChain(Arrays.<AccessTokenProvider>asList(new OpenIDTokenProvider(),
            new AuthorizationCodeAccessTokenProvider(), new ImplicitAccessTokenProvider(),
            new ResourceOwnerPasswordAccessTokenProvider(), new ClientCredentialsAccessTokenProvider()));
}

From source file:sparklr.common.AbstractAuthorizationCodeProviderTests.java

@BeforeOAuth2Context
public void setupAccessTokenProvider() {
    accessTokenProvider = new AuthorizationCodeAccessTokenProvider() {

        private ResponseExtractor<OAuth2AccessToken> extractor = super.getResponseExtractor();

        private ResponseExtractor<ResponseEntity<Void>> authExtractor = super.getAuthorizationResponseExtractor();

        private ResponseErrorHandler errorHandler = super.getResponseErrorHandler();

        @Override//from  w  w w.  j a  v a 2 s .c om
        protected ResponseErrorHandler getResponseErrorHandler() {
            return new DefaultResponseErrorHandler() {
                public void handleError(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    errorHandler.handleError(response);
                }
            };
        }

        @Override
        protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
            return new ResponseExtractor<OAuth2AccessToken>() {

                public OAuth2AccessToken extractData(ClientHttpResponse response) throws IOException {
                    try {
                        response.getHeaders();
                        response.getStatusCode();
                        tokenEndpointResponse = response;
                        return extractor.extractData(response);
                    } catch (ResourceAccessException e) {
                        return null;
                    }
                }

            };
        }

        @Override
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {

                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    response.getHeaders();
                    response.getStatusCode();
                    tokenEndpointResponse = response;
                    return authExtractor.extractData(response);
                }
            };
        }
    };
    context.setAccessTokenProvider(accessTokenProvider);
}

From source file:org.openmhealth.shim.runkeeper.RunkeeperShim.java

@Override
public AuthorizationCodeAccessTokenProvider getAuthorizationCodeAccessTokenProvider() {
    AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider();
    provider.setTokenRequestEnhancer(new RunkeeperTokenRequestEnhancer());
    return provider;
}

From source file:com.onedrive.api.OneDrive.java

public RestTemplate getRestTemplate() {
    if (restTemplate == null) {
        DefaultAccessTokenRequest accessTokenRequest = new DefaultAccessTokenRequest();
        accessTokenRequest.setAuthorizationCode(authorizationCode);
        accessTokenRequest.setPreservedState(new Object());
        accessTokenRequest.setExistingToken(getOAuth2AccessToken());
        restTemplate = new OAuth2RestTemplate(getResourceDetails(),
                new DefaultOAuth2ClientContext(accessTokenRequest));
        restTemplate.setErrorHandler(new OneDriveErrorHandler(restTemplate.getMessageConverters()));
        AccessTokenProviderChain provider = new AccessTokenProviderChain(
                Arrays.asList(new AuthorizationCodeAccessTokenProvider()));
        provider.setClientTokenServices(new InternalTokenServices(this));
        ((OAuth2RestTemplate) restTemplate).setAccessTokenProvider(provider);
        restTemplate.getMessageConverters().add(new MultipartRelatedHttpMessageConverter());
        for (HttpMessageConverter<?> mc : restTemplate.getMessageConverters()) {
            if (mc instanceof MappingJackson2HttpMessageConverter) {
                objectMapper = ((MappingJackson2HttpMessageConverter) mc).getObjectMapper();
                objectMapper.setInjectableValues(new InjectableValues.Std().addValue(OneDrive.class, this));
                objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
                SimpleModule module = new SimpleModule();
                module.addDeserializer(Date.class, new InternalDateDeserializer());
                objectMapper.registerModule(module);
            }//  w  w w.  j a va 2s .  com
        }
    }
    return restTemplate;
}

From source file:org.cloudfoundry.identity.client.UaaContextFactory.java

/**
 * Performs and authorization_code grant, but uses a token to assert the user's identity.
 * @param tokenRequest - a configured TokenRequest
 * @return an authenticated {@link UaaContext}
 *//* ww  w  .  jav  a  2 s  .  c  om*/
protected UaaContext authenticateAuthCodeWithToken(final TokenRequest tokenRequest) {
    List<OAuth2AccessTokenSupport> providers = Collections
            .singletonList(new AuthorizationCodeAccessTokenProvider() {
                @Override
                protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
                    getRestTemplate(); // force initialization
                    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
                    return new HttpMessageConverterExtractor<OAuth2AccessToken>(CompositeAccessToken.class,
                            Arrays.asList(converter));
                }
            });
    enhanceRequestParameters(tokenRequest, providers.get(0));
    AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails();
    details.setPreEstablishedRedirectUri(tokenRequest.getRedirectUri().toString());
    configureResourceDetails(tokenRequest, details);
    setClientCredentials(tokenRequest, details);
    setRequestScopes(tokenRequest, details);
    details.setUserAuthorizationUri(tokenRequest.getAuthorizationEndpoint().toString());
    DefaultOAuth2ClientContext oAuth2ClientContext = new DefaultOAuth2ClientContext();
    oAuth2ClientContext.getAccessTokenRequest().setStateKey(tokenRequest.getState());
    oAuth2ClientContext.setPreservedState(tokenRequest.getState(), details.getPreEstablishedRedirectUri());
    oAuth2ClientContext.getAccessTokenRequest().setCurrentUri(details.getPreEstablishedRedirectUri());
    Map<String, List<String>> headers = (Map<String, List<String>>) oAuth2ClientContext.getAccessTokenRequest()
            .getHeaders();
    headers.put("Authorization", Arrays.asList("bearer " + tokenRequest.getAuthCodeAPIToken()));
    OAuth2RestTemplate template = new OAuth2RestTemplate(details, oAuth2ClientContext);
    skipSslValidation(tokenRequest, template, providers);
    OAuth2AccessToken token = template.getAccessToken();
    return new UaaContextImpl(tokenRequest, template, (CompositeAccessToken) token);
}

From source file:sparklr.common.AbstractAuthorizationCodeProviderTests.java

private void verifyAuthorizationPage(OAuth2RestTemplate restTemplate, String location) {
    final AtomicReference<String> confirmationPage = new AtomicReference<String>();
    AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider() {
        @Override//from  www .j a  v  a  2s.  c o  m
        protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
            return new ResponseExtractor<ResponseEntity<Void>>() {
                public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
                    confirmationPage
                            .set(StreamUtils.copyToString(response.getBody(), Charset.forName("UTF-8")));
                    return new ResponseEntity<Void>(response.getHeaders(), response.getStatusCode());
                }
            };
        }
    };
    try {
        provider.obtainAuthorizationCode(restTemplate.getResource(),
                restTemplate.getOAuth2ClientContext().getAccessTokenRequest());
    } catch (UserApprovalRequiredException e) {
        // ignore
    }
    String page = confirmationPage.get();
    verifyAuthorizationPage(page);
}

From source file:org.cloudfoundry.identity.client.UaaContextFactory.java

/**
 * If the {@link TokenRequest#isSkipSslValidation()} returns true, the rest template
 * will be configured//www.j  a  va  2 s . c  o m
 * @param tokenRequest
 * @param template
 */
protected void skipSslValidation(TokenRequest tokenRequest, OAuth2RestTemplate template,
        List<OAuth2AccessTokenSupport> existingProviders) {
    ClientHttpRequestFactory requestFactory = null;
    if (tokenRequest.isSkipSslValidation()) {
        requestFactory = getNoValidatingClientHttpRequestFactory();
    }
    List<OAuth2AccessTokenSupport> accessTokenProviders = existingProviders != null ? existingProviders
            : Arrays.<OAuth2AccessTokenSupport>asList(new AuthorizationCodeAccessTokenProvider(),
                    new ImplicitAccessTokenProvider(), new ResourceOwnerPasswordAccessTokenProvider(),
                    new ClientCredentialsAccessTokenProvider());
    List<AccessTokenProvider> providers = new ArrayList<>();
    for (OAuth2AccessTokenSupport provider : accessTokenProviders) {
        if (requestFactory != null) {
            provider.setRequestFactory(requestFactory);
        }
        providers.add((AccessTokenProvider) provider);
    }
    AccessTokenProviderChain chain = new AccessTokenProviderChain(providers);
    template.setAccessTokenProvider(chain);
}