Example usage for org.springframework.security.oauth2.client OAuth2RestTemplate OAuth2RestTemplate

List of usage examples for org.springframework.security.oauth2.client OAuth2RestTemplate OAuth2RestTemplate

Introduction

In this page you can find the example usage for org.springframework.security.oauth2.client OAuth2RestTemplate OAuth2RestTemplate.

Prototype

public OAuth2RestTemplate(OAuth2ProtectedResourceDetails resource, OAuth2ClientContext context) 

Source Link

Usage

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);
            }//from  w  w w. j  a  v a2 s .co  m
        }
    }
    return restTemplate;
}

From source file:cz.cvut.zuul.support.spring.client.OAuth2ResourceDetailsBuilder.java

/**
 * @return Configured {@code OAuth2RestTemplate} instance for this resource.
 *///  www. j  a v a 2s .  c o m
public OAuth2RestTemplate build() {
    OAuth2ProtectedResourceDetails resource = getResourceDetails();

    OAuth2ClientContext context = resource.isClientOnly() ? new DefaultOAuth2ClientContext()
            : new ScopedOAuth2ClientContext(resource.getId());

    return new OAuth2RestTemplate(resource, context);
}

From source file:com.github.bonndan.fullofstars.FOSApplication.java

private Filter ssoFilter(ClientResources client, String path) {
    OAuth2ClientAuthenticationProcessingFilter filter = new OAuth2ClientAuthenticationProcessingFilter(path);
    OAuth2RestTemplate templ = new OAuth2RestTemplate(client.getClient(), oauth2ClientContext);
    filter.setRestTemplate(templ);//from  w  ww.j a  v  a  2 s  .co  m
    filter.setTokenServices(
            new UserInfoTokenServices(client.getResource().getUserInfoUri(), client.getClient().getClientId()));
    return filter;
}

From source file:de.dominikschadow.duke.encounters.config.WebSecurityConfig.java

private Filter ssoFilter(ClientResources client, String path) {
    OAuth2ClientAuthenticationProcessingFilter oAuth2ClientAuthenticationFilter = new OAuth2ClientAuthenticationProcessingFilter(
            path);//from   w  ww .j  av a  2 s  .co  m
    OAuth2RestTemplate oAuth2RestTemplate = new OAuth2RestTemplate(client.getClient(), oauth2ClientContext);
    oAuth2ClientAuthenticationFilter.setRestTemplate(oAuth2RestTemplate);
    UserInfoTokenServices tokenServices = new UserInfoTokenServices(client.getResource().getUserInfoUri(),
            client.getClient().getClientId());
    tokenServices.setRestTemplate(oAuth2RestTemplate);
    oAuth2ClientAuthenticationFilter.setTokenServices(tokenServices);
    return oAuth2ClientAuthenticationFilter;
}

From source file:org.cloudfoundry.identity.uaa.integration.TestAccountSetup.java

private OAuth2RestTemplate createRestTemplate(OAuth2ProtectedResourceDetails resource,
        AccessTokenRequest accessTokenRequest) {
    OAuth2ClientContext context = new DefaultOAuth2ClientContext(accessTokenRequest);
    OAuth2RestTemplate client = new OAuth2RestTemplate(resource, context);
    client.setRequestFactory(new SimpleClientHttpRequestFactory() {
        @Override//from ww w .jav  a 2 s .c o m
        protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {
            super.prepareConnection(connection, httpMethod);
            connection.setInstanceFollowRedirects(false);
        }
    });
    client.setErrorHandler(new ResponseErrorHandler() {
        // Pass errors through in response entity for status code analysis
        public boolean hasError(ClientHttpResponse response) throws IOException {
            return false;
        }

        public void handleError(ClientHttpResponse response) throws IOException {
        }
    });
    List<HttpMessageConverter<?>> list = new ArrayList<HttpMessageConverter<?>>();
    list.add(new StringHttpMessageConverter());
    list.add(new MappingJacksonHttpMessageConverter());
    client.setMessageConverters(list);
    return client;
}

From source file:org.openmhealth.shim.OAuth2ShimBase.java

protected OAuth2RestOperations restTemplate(String stateKey, String code) {

    DefaultAccessTokenRequest existingRequest =

            stateKey != null && authorizationRequestParametersRepo.findByStateKey(stateKey) != null ?

                    (DefaultAccessTokenRequest) SerializationUtils.deserialize(
                            authorizationRequestParametersRepo.findByStateKey(stateKey).getSerializedRequest())
                    : null;// ww  w.  ja  v a  2 s .  c o  m

    if (existingRequest != null && code != null) {
        existingRequest.set("code", code);
    }

    DefaultOAuth2ClientContext context = new DefaultOAuth2ClientContext(
            existingRequest != null ? existingRequest : new DefaultAccessTokenRequest());

    if (existingRequest != null) {
        context.setPreservedState(stateKey, "NONE");
    }

    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(getResource(), context);
    AccessTokenProviderChain tokenProviderChain = new AccessTokenProviderChain(
            new ArrayList<>(Arrays.asList(getAuthorizationCodeAccessTokenProvider())));
    tokenProviderChain.setClientTokenServices(new AccessParameterClientTokenServices(accessParametersRepo));
    restTemplate.setAccessTokenProvider(tokenProviderChain);
    return restTemplate;
}

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

/**
 * Not yet implemented//from   w ww . j av  a2  s .c o m
 * @param tokenRequest - a configured TokenRequest
 * @return an authenticated {@link UaaContext}
 */
protected UaaContext authenticateAuthCode(final TokenRequest tokenRequest) {
    AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails();
    details.setPreEstablishedRedirectUri(tokenRequest.getRedirectUri().toString());
    details.setUserAuthorizationUri(tokenRequest.getAuthorizationEndpoint().toString());
    configureResourceDetails(tokenRequest, details);
    setClientCredentials(tokenRequest, details);
    setRequestScopes(tokenRequest, details);

    //begin - work around for not having UI for now
    DefaultOAuth2ClientContext oAuth2ClientContext = new DefaultOAuth2ClientContext();
    oAuth2ClientContext.getAccessTokenRequest().setStateKey(tokenRequest.getState());
    oAuth2ClientContext.setPreservedState(tokenRequest.getState(), details.getPreEstablishedRedirectUri());
    oAuth2ClientContext.getAccessTokenRequest().setCurrentUri(details.getPreEstablishedRedirectUri());
    //end - work around for not having UI for now

    OAuth2RestTemplate template = new OAuth2RestTemplate(details, oAuth2ClientContext);
    skipSslValidation(tokenRequest, template, null);
    template.getAccessToken();
    throw new UnsupportedOperationException(AUTHORIZATION_CODE + " is not yet implemented");
}

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}
 *//*from  w  w  w .ja  va  2s .c o m*/
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);
}