List of usage examples for org.springframework.security.oauth2.client DefaultOAuth2ClientContext setPreservedState
public void setPreservedState(String stateKey, Object preservedState)
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); }