use of com.google.api.client.auth.oauth2.AuthorizationCodeFlow.Builder in project isaac-api by isaacphysics.
the class TwitterAuthenticator method exchangeCode.
@Override
public String exchangeCode(final String authorizationCode) throws CodeExchangeException {
try {
AccessToken accessToken = twitter.getOAuthAccessToken(authorizationCode);
TokenResponse tokenResponse = new TokenResponse();
tokenResponse.setAccessToken(accessToken.getToken());
tokenResponse.setRefreshToken(accessToken.getTokenSecret());
tokenResponse.setExpiresInSeconds(Long.MAX_VALUE);
Builder builder = new AuthorizationCodeFlow.Builder(BearerToken.authorizationHeaderAccessMethod(), httpTransport, jsonFactory, new GenericUrl(TOKEN_EXCHANGE_URL), new ClientParametersAuthentication(clientId, clientSecret), clientId, AUTH_URL);
AuthorizationCodeFlow flow = builder.setDataStoreFactory(MemoryDataStoreFactory.getDefaultInstance()).build();
Credential credential = flow.createAndStoreCredential(tokenResponse, authorizationCode);
String internalReferenceToken = UUID.randomUUID().toString();
credentialStore.put(internalReferenceToken, credential);
flow.getCredentialDataStore().clear();
return internalReferenceToken;
} catch (IOException | TwitterException | IllegalStateException e) {
log.error("An error occurred during code exchange: " + e);
throw new CodeExchangeException();
}
}
use of com.google.api.client.auth.oauth2.AuthorizationCodeFlow.Builder in project openhab1-addons by openhab.
the class GCalGoogleOAuth method newCredential.
private static Credential newCredential(String userId, DataStore<StoredCredential> credentialDataStore) {
Credential.Builder builder = new Credential.Builder(BearerToken.authorizationHeaderAccessMethod()).setTransport(HTTP_TRANSPORT).setJsonFactory(JSON_FACTORY).setTokenServerEncodedUrl("https://accounts.google.com/o/oauth2/token").setClientAuthentication(new ClientParametersAuthentication(client_id, client_secret)).setRequestInitializer(null).setClock(Clock.SYSTEM);
builder.addRefreshListener(new DataStoreCredentialRefreshListener(userId, credentialDataStore));
return builder.build();
}
use of com.google.api.client.auth.oauth2.AuthorizationCodeFlow.Builder in project community by GoogleCloudPlatform.
the class SimpleExample method authorize.
private Credential authorize() throws Exception {
HttpExecuteInterceptor credentials = new ClientParametersAuthentication(this.clientId, this.clientSecret);
AuthorizationCodeFlow flow = new AuthorizationCodeFlow.Builder(authorizationHeaderAccessMethod(), httpTransport, jsonFactory, new GenericUrl(TOKEN_SERVER_URL), credentials, this.clientId, AUTHORIZATION_SERVER_URL).setScopes(SCOPES).setDataStoreFactory(dataStoreFactory).build();
LocalServerReceiver.Builder builder = new LocalServerReceiver.Builder();
VerificationCodeReceiver receiver = builder.setHost(DOMAIN).setPort(PORT).build();
return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
}
use of com.google.api.client.auth.oauth2.AuthorizationCodeFlow.Builder in project google-cloud-intellij by GoogleCloudPlatform.
the class CloudDebuggerClient method getClient.
/**
* Returns a cloud debugger connection given a user email to indicate the credentials to use. The
* function may return null if the user is not logged in.
*/
@Nullable
private static Debugger getClient(@Nullable final String userEmail, final int timeout) {
if (Strings.isNullOrEmpty(userEmail)) {
LOG.warn("unexpected null email in controller initialize.");
return null;
}
final String hashkey = userEmail + timeout;
Debugger cloudDebuggerClient = debuggerClientsFromUserEmail.get(hashkey);
if (cloudDebuggerClient == null) {
try {
final CredentialedUser user = Services.getLoginService().getAllUsers().get(userEmail);
final Credential credential = (user != null ? user.getCredential() : null);
if (credential != null) {
user.getGoogleLoginState().addLoginListener(new LoginListener() {
@Override
public void statusChanged(boolean login) {
if (!login) {
// aggressively remove the cached item on any status change.
debuggerClientsFromUserEmail.remove(hashkey);
} else {
// NOPMD
// user logged in, should we do something?
}
}
});
HttpRequestInitializer initializer = new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest httpRequest) throws IOException {
HttpHeaders headers = new HttpHeaders();
httpRequest.setConnectTimeout(timeout);
httpRequest.setReadTimeout(timeout);
httpRequest.setHeaders(headers);
credential.initialize(httpRequest);
}
};
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
String userAgent = ServiceManager.getService(PluginInfoService.class).getUserAgent();
cloudDebuggerClient = new Builder(httpTransport, JSON_FACTORY, initializer).setRootUrl(ROOT_URL).setApplicationName(userAgent).build().debugger();
}
} catch (IOException ex) {
LOG.warn("Error connecting to Cloud Debugger API", ex);
} catch (GeneralSecurityException ex) {
LOG.warn("Error connecting to Cloud Debugger API", ex);
}
if (cloudDebuggerClient != null) {
debuggerClientsFromUserEmail.put(hashkey, cloudDebuggerClient);
}
}
return cloudDebuggerClient;
}
use of com.google.api.client.auth.oauth2.AuthorizationCodeFlow.Builder in project gradle by gradle.
the class GcsClient method create.
public static GcsClient create(GcsConnectionProperties gcsConnectionProperties) throws GeneralSecurityException, IOException {
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = new JacksonFactory();
Storage.Builder builder = new Storage.Builder(transport, jsonFactory, null);
if (gcsConnectionProperties.requiresAuthentication()) {
Supplier<Credential> credentialSupplier = getCredentialSupplier(transport, jsonFactory);
builder.setHttpRequestInitializer(new RetryHttpInitializerWrapper(credentialSupplier));
}
if (gcsConnectionProperties.getEndpoint().isPresent()) {
builder.setRootUrl(gcsConnectionProperties.getEndpoint().get().toString());
}
if (gcsConnectionProperties.getServicePath().isPresent()) {
builder.setServicePath(gcsConnectionProperties.getServicePath().get());
}
builder.setApplicationName("gradle");
return new GcsClient(builder.build());
}
Aggregations