List of usage examples for org.springframework.security.oauth2.client.token.grant.code AuthorizationCodeAccessTokenProvider AuthorizationCodeAccessTokenProvider
AuthorizationCodeAccessTokenProvider
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); }