Example usage for org.springframework.security.oauth2.client DefaultOAuth2ClientContext setPreservedState

List of usage examples for org.springframework.security.oauth2.client DefaultOAuth2ClientContext setPreservedState

Introduction

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

Prototype

public void setPreservedState(String stateKey, Object preservedState) 

Source Link

Usage

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;// w  w  w .j  a  va  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 w  w  .  java2 s. c om
 * @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 v  a 2  s.com
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);
}