/** * Copyright (C) 2011 Talend Inc. - www.talend.com */ package oauth2.thirdparty; import java.net.URI; import oauth2.common.OAuthConstants; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.rs.security.oauth2.client.OAuthClientUtils; import org.apache.cxf.rs.security.oauth2.client.Consumer; import org.apache.cxf.rs.security.oauth2.common.ClientAccessToken; import org.apache.cxf.rs.security.oauth2.grants.code.AuthorizationCodeGrant; import org.apache.cxf.rs.security.oauth2.provider.OAuthServiceException; public class OAuthClientManager { private static final String DEFAULT_CLIENT_ID = "123456789"; private static final String DEFAULT_CLIENT_SECRET = "987654321"; private WebClient accessTokenService; private String authorizationServiceURI; private Consumer consumer = new Consumer(DEFAULT_CLIENT_ID, DEFAULT_CLIENT_SECRET); public OAuthClientManager() { } public URI getAuthorizationServiceURI(ReservationRequest request, URI redirectUri, String reservationRequestKey) { String scope = OAuthConstants.UPDATE_CALENDAR_SCOPE + request.getHour(); return OAuthClientUtils.getAuthorizationURI(authorizationServiceURI, consumer.getKey(), redirectUri.toString(), reservationRequestKey, scope); } public ClientAccessToken getAccessToken(AuthorizationCodeGrant codeGrant) { try { return OAuthClientUtils.getAccessToken(accessTokenService, consumer, codeGrant); } catch (OAuthServiceException ex) { return null; } } public String createAuthorizationHeader(ClientAccessToken token) { return OAuthClientUtils.createAuthorizationHeader(token); } public void setAccessTokenService(WebClient ats) { // The timeout is set to simplify debugging on the server side; // otherwise the connection may time-out too early WebClient.getConfig(ats).getHttpConduit().getClient().setReceiveTimeout(1000000); this.accessTokenService = ats; } public void setAuthorizationURI(String uri) { this.authorizationServiceURI = uri; } }