Repository: jclouds-labs-google Updated Branches: refs/heads/1.8.x 36614bbf7 -> bee989855
JCLOUDS-633: Support passing bearer token directly for OAuth2 Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/bee98985 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/bee98985 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/bee98985 Branch: refs/heads/1.8.x Commit: bee9898559d1bf3c2a2701e94b05fe732ae6aa41 Parents: 36614bb Author: Chris Custine <[email protected]> Authored: Fri Jul 18 12:53:48 2014 -0600 Committer: Chris Custine <[email protected]> Committed: Wed Aug 13 16:37:49 2014 -0600 ---------------------------------------------------------------------- .../config/OAuthModuleWithoutTypeAdapters.java | 2 + .../features/BucketAccessControlsApi.java | 4 +- .../googlecloudstorage/features/BucketApi.java | 4 +- .../DefaultObjectAccessControlsApi.java | 4 +- .../config/OAuthModuleWithoutTypeAdapters.java | 2 + .../features/AddressApi.java | 4 +- .../googlecomputeengine/features/DiskApi.java | 4 +- .../features/FirewallApi.java | 4 +- .../features/GlobalOperationApi.java | 4 +- .../googlecomputeengine/features/ImageApi.java | 4 +- .../features/InstanceApi.java | 4 +- .../features/MachineTypeApi.java | 4 +- .../features/NetworkApi.java | 4 +- .../features/ProjectApi.java | 4 +- .../googlecomputeengine/features/RegionApi.java | 4 +- .../features/RegionOperationApi.java | 4 +- .../googlecomputeengine/features/RouteApi.java | 4 +- .../features/SnapshotApi.java | 4 +- .../googlecomputeengine/features/ZoneApi.java | 4 +- .../features/ZoneOperationApi.java | 4 +- .../GoogleComputeEngineServiceLiveTest.java | 5 +++ .../jclouds/oauth/v2/config/CredentialType.java | 42 ++++++++++++++++++++ .../jclouds/oauth/v2/config/OAuthModule.java | 41 +++++++++++++++++-- .../oauth/v2/config/OAuthProperties.java | 8 ++++ .../v2/filters/BearerTokenAuthenticator.java | 41 +++++++++++++++++++ .../v2/filters/OAuthAuthenticationFilter.java | 27 +++++++++++++ .../oauth/v2/filters/OAuthAuthenticator.java | 3 +- .../org/jclouds/oauth/v2/OAuthTestUtils.java | 12 ++++++ 28 files changed, 213 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/OAuthModuleWithoutTypeAdapters.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/OAuthModuleWithoutTypeAdapters.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/OAuthModuleWithoutTypeAdapters.java index ae1b417..b9292a1 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/OAuthModuleWithoutTypeAdapters.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/OAuthModuleWithoutTypeAdapters.java @@ -16,6 +16,7 @@ */ package org.jclouds.googlecloudstorage.config; +import org.jclouds.oauth.v2.config.CredentialType; import org.jclouds.oauth.v2.config.OAuthModule; import org.jclouds.oauth.v2.domain.OAuthCredentials; import org.jclouds.oauth.v2.domain.Token; @@ -45,5 +46,6 @@ public class OAuthModuleWithoutTypeAdapters extends OAuthModule { }).to(BuildTokenRequest.class); bind(new TypeLiteral<Function<TokenRequest, Token>>() { }).to(FetchToken.class); + bind(CredentialType.class).toProvider(OAuthModule.CredentialTypeFromPropertyOrDefault.class); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java index cc2cad7..2d56cae 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java @@ -36,7 +36,7 @@ import org.jclouds.googlecloudstorage.handlers.BucketAccessControlsBinder; import org.jclouds.http.HttpResponse; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; @@ -53,7 +53,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; */ @SkipEncoding({ '/', '=' }) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface BucketAccessControlsApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java index d1f05a5..4b00b20 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java @@ -43,7 +43,7 @@ import org.jclouds.googlecloudstorage.options.ListOptions; import org.jclouds.googlecloudstorage.options.UpdateBucketOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; @@ -60,7 +60,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; */ @SkipEncoding({ '/', '=' }) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface BucketApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java ---------------------------------------------------------------------- diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java index 27b9505..91d1f52 100644 --- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java +++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java @@ -39,7 +39,7 @@ import org.jclouds.googlecloudstorage.handlers.DefaultObjectAccessControlsBinder import org.jclouds.http.HttpResponse; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; @@ -56,7 +56,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; */ @SkipEncoding({ '/', '=' }) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface DefaultObjectAccessControlsApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/OAuthModuleWithoutTypeAdapters.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/OAuthModuleWithoutTypeAdapters.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/OAuthModuleWithoutTypeAdapters.java index 157dd9b..03f2f46 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/OAuthModuleWithoutTypeAdapters.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/config/OAuthModuleWithoutTypeAdapters.java @@ -16,6 +16,7 @@ */ package org.jclouds.googlecomputeengine.config; +import org.jclouds.oauth.v2.config.CredentialType; import org.jclouds.oauth.v2.config.OAuthModule; import org.jclouds.oauth.v2.domain.OAuthCredentials; import org.jclouds.oauth.v2.domain.Token; @@ -47,5 +48,6 @@ public class OAuthModuleWithoutTypeAdapters extends OAuthModule { }).to(BuildTokenRequest.class); bind(new TypeLiteral<Function<TokenRequest, Token>>() { }).to(FetchToken.class); + bind(CredentialType.class).toProvider(OAuthModule.CredentialTypeFromPropertyOrDefault.class); } } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java index 40ec7dc..d363715 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/AddressApi.java @@ -41,7 +41,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseAddresses; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; import org.jclouds.rest.annotations.PayloadParam; @@ -57,7 +57,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; * @see <a href="https://developers.google.com/compute/docs/reference/v1/addresses"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface AddressApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java index fa26c25..dcb1942 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/DiskApi.java @@ -41,7 +41,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseDisks; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; import org.jclouds.rest.annotations.PayloadParam; @@ -57,7 +57,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; * @see <a href="https://developers.google.com/compute/docs/reference/v1/disks"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface DiskApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java index 677b56a..79b2ec0 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/FirewallApi.java @@ -47,7 +47,7 @@ import org.jclouds.googlecomputeengine.options.FirewallOptions; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; @@ -65,7 +65,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; * @see <a href="https://developers.google.com/compute/docs/reference/v1/firewalls"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface FirewallApi { /** * Returns the specified image resource. http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java index af3221c..818ae86 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/GlobalOperationApi.java @@ -38,7 +38,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseGlobalOperations; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -51,7 +51,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/globalOperations"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface GlobalOperationApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java index cbac67e..d5755f2 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ImageApi.java @@ -39,7 +39,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseImages; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -53,7 +53,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/images"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface ImageApi { /** * Returns the specified image resource. http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java index ab80fb5..2a88a79 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/InstanceApi.java @@ -48,7 +48,7 @@ import org.jclouds.googlecomputeengine.options.AttachDiskOptions; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.BinderParam; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; @@ -66,7 +66,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; * @see InstanceApi */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface InstanceApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java index e88362b..9c0e411 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/MachineTypeApi.java @@ -36,7 +36,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseMachineTypes; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -49,7 +49,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/machineTypes"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) @Consumes(MediaType.APPLICATION_JSON) public interface MachineTypeApi { http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java index 82fe8e2..8f21287 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/NetworkApi.java @@ -41,7 +41,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseNetworks; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; import org.jclouds.rest.annotations.PayloadParam; @@ -57,7 +57,7 @@ import org.jclouds.rest.binders.BindToJsonPayload; * @see <a href="https://developers.google.com/compute/docs/reference/v1/networks"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface NetworkApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java index 94cfe05..8871593 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ProjectApi.java @@ -35,7 +35,7 @@ import org.jclouds.googlecomputeengine.domain.Operation; import org.jclouds.googlecomputeengine.domain.Project; import org.jclouds.googlecomputeengine.handlers.MetadataBinder; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; import org.jclouds.rest.annotations.PayloadParam; @@ -48,7 +48,7 @@ import org.jclouds.rest.annotations.SkipEncoding; * @see <a href="https://developers.google.com/compute/docs/reference/v1/projects"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface ProjectApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java index 872918d..608a614 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionApi.java @@ -34,7 +34,7 @@ import org.jclouds.googlecomputeengine.domain.Region; import org.jclouds.googlecomputeengine.functions.internal.ParseRegions; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -47,7 +47,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/regions"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) @Consumes(MediaType.APPLICATION_JSON) public interface RegionApi { http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java index 9f5c48d..4afab63 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RegionOperationApi.java @@ -38,7 +38,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseRegionOperations; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -51,7 +51,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/operations"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface RegionOperationApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java index 5405181..3d208af 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/RouteApi.java @@ -44,7 +44,7 @@ import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.googlecomputeengine.options.RouteOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.MapBinder; import org.jclouds.rest.annotations.PayloadParam; @@ -59,7 +59,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/routess"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) @Consumes(MediaType.APPLICATION_JSON) public interface RouteApi { http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java index 89fe8d5..e0ac384 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/SnapshotApi.java @@ -39,7 +39,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseSnapshots; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -52,7 +52,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/snapshots"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface SnapshotApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java index 246c66d..26d10a6 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneApi.java @@ -34,7 +34,7 @@ import org.jclouds.googlecomputeengine.domain.Zone; import org.jclouds.googlecomputeengine.functions.internal.ParseZones; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -47,7 +47,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/zones"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) @Consumes(MediaType.APPLICATION_JSON) public interface ZoneApi { http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java index 37cd2c9..3dd69e1 100644 --- a/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java +++ b/google-compute-engine/src/main/java/org/jclouds/googlecomputeengine/features/ZoneOperationApi.java @@ -38,7 +38,7 @@ import org.jclouds.googlecomputeengine.functions.internal.ParseZoneOperations; import org.jclouds.googlecomputeengine.options.ListOptions; import org.jclouds.javax.annotation.Nullable; import org.jclouds.oauth.v2.config.OAuthScopes; -import org.jclouds.oauth.v2.filters.OAuthAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; @@ -51,7 +51,7 @@ import org.jclouds.rest.annotations.Transform; * @see <a href="https://developers.google.com/compute/docs/reference/v1/operations"/> */ @SkipEncoding({'/', '='}) -@RequestFilters(OAuthAuthenticator.class) +@RequestFilters(OAuthAuthenticationFilter.class) public interface ZoneOperationApi { /** http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java index 4afa667..af3126f 100644 --- a/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java +++ b/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/compute/GoogleComputeEngineServiceLiveTest.java @@ -29,6 +29,8 @@ import org.jclouds.compute.internal.BaseComputeServiceLiveTest; import org.jclouds.googlecomputeengine.GoogleComputeEngineApi; import org.jclouds.googlecomputeengine.config.UserProject; import org.jclouds.googlecomputeengine.domain.MachineType; +import org.jclouds.oauth.v2.config.CredentialType; +import org.jclouds.oauth.v2.config.OAuthProperties; import org.jclouds.sshj.config.SshjSshClientModule; import org.testng.annotations.Test; @@ -51,7 +53,10 @@ public class GoogleComputeEngineServiceLiveTest extends BaseComputeServiceLiveTe @Override protected Properties setupProperties() { Properties props = super.setupProperties(); + if(!System.getProperty(OAuthProperties.CREDENTIAL_TYPE, "") + .equalsIgnoreCase(CredentialType.BEARER_TOKEN_CREDENTIALS.toString())) { setCredential(props, provider + ".credential"); + } return props; } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/main/java/org/jclouds/oauth/v2/config/CredentialType.java ---------------------------------------------------------------------- diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/config/CredentialType.java b/oauth/src/main/java/org/jclouds/oauth/v2/config/CredentialType.java new file mode 100644 index 0000000..24a658b --- /dev/null +++ b/oauth/src/main/java/org/jclouds/oauth/v2/config/CredentialType.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.oauth.v2.config; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.CaseFormat; + +/** + * Decides what type of credentials createContext is supplied with. + */ +public enum CredentialType { + + BEARER_TOKEN_CREDENTIALS, + + SERVICE_ACCOUNT_CREDENTIALS; + + @Override + public String toString() { + return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name()); + } + + public static CredentialType fromValue(String credentialType) { + return valueOf(CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, checkNotNull(credentialType, + "credentialType"))); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthModule.java ---------------------------------------------------------------------- diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthModule.java b/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthModule.java index 11fca2f..1041c07 100644 --- a/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthModule.java +++ b/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthModule.java @@ -23,13 +23,20 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableMap; import com.google.inject.AbstractModule; +import com.google.inject.Inject; +import com.google.inject.Provider; import com.google.inject.Provides; +import com.google.inject.Singleton; import com.google.inject.TypeLiteral; +import com.google.inject.name.Named; import org.jclouds.oauth.v2.domain.ClaimSet; import org.jclouds.oauth.v2.domain.Header; import org.jclouds.oauth.v2.domain.OAuthCredentials; import org.jclouds.oauth.v2.domain.Token; import org.jclouds.oauth.v2.domain.TokenRequest; +import org.jclouds.oauth.v2.filters.BearerTokenAuthenticator; +import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter; +import org.jclouds.oauth.v2.filters.OAuthAuthenticator; import org.jclouds.oauth.v2.functions.BuildTokenRequest; import org.jclouds.oauth.v2.functions.FetchToken; import org.jclouds.oauth.v2.functions.OAuthCredentialsSupplier; @@ -38,8 +45,6 @@ import org.jclouds.oauth.v2.json.ClaimSetTypeAdapter; import org.jclouds.oauth.v2.json.HeaderTypeAdapter; import org.jclouds.rest.internal.GeneratedHttpRequest; -import javax.inject.Named; -import javax.inject.Singleton; import java.lang.reflect.Type; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -56,8 +61,9 @@ public class OAuthModule extends AbstractModule { protected void configure() { bind(new TypeLiteral<Function<byte[], byte[]>>() {}).to(SignOrProduceMacForToken.class); bind(new TypeLiteral<Map<Type, Object>>() {}).toInstance(ImmutableMap.<Type, Object>of( - Header.class, new HeaderTypeAdapter(), - ClaimSet.class, new ClaimSetTypeAdapter())); + Header.class, new HeaderTypeAdapter(), + ClaimSet.class, new ClaimSetTypeAdapter())); + bind(CredentialType.class).toProvider(CredentialTypeFromPropertyOrDefault.class); bind(new TypeLiteral<Supplier<OAuthCredentials>>() {}).to(OAuthCredentialsSupplier.class); bind(new TypeLiteral<Function<GeneratedHttpRequest, TokenRequest>>() {}).to(BuildTokenRequest.class); bind(new TypeLiteral<Function<TokenRequest, Token>>() {}).to(FetchToken.class); @@ -83,4 +89,31 @@ public class OAuthModule extends AbstractModule { .from(getAccess)); } + @Singleton + public static class CredentialTypeFromPropertyOrDefault implements Provider<CredentialType> { + @Inject(optional = true) + @Named(OAuthProperties.CREDENTIAL_TYPE) + String credentialType = CredentialType.SERVICE_ACCOUNT_CREDENTIALS.toString(); + + @Override + public CredentialType get() { + return CredentialType.fromValue(credentialType); + } + } + + @Provides + @Singleton + protected OAuthAuthenticationFilter authenticationFilterForCredentialType(CredentialType credentialType, + OAuthAuthenticator serviceAccountAuth, + BearerTokenAuthenticator bearerTokenAuth) { + switch (credentialType) { + case SERVICE_ACCOUNT_CREDENTIALS: + return serviceAccountAuth; + case BEARER_TOKEN_CREDENTIALS: + return bearerTokenAuth; + default: + throw new IllegalArgumentException("Unsupported credential type: " + credentialType); + } + } + } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthProperties.java ---------------------------------------------------------------------- diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthProperties.java b/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthProperties.java index 7b1bf17..9394cad 100644 --- a/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthProperties.java +++ b/oauth/src/main/java/org/jclouds/oauth/v2/config/OAuthProperties.java @@ -40,4 +40,12 @@ public class OAuthProperties { * Optional list of comma-separated scopes to use when no OAuthScopes annotation is present. */ public static final String SCOPES = "jclouds.oauth.scopes"; + + /** + * Specify if credentials are id + private key or if you are reusing an oauth2 token. + * + * @see org.jclouds.oauth.v2.config.CredentialType + */ + public static final String CREDENTIAL_TYPE = "jclouds.oauth.credential-type"; + } http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/main/java/org/jclouds/oauth/v2/filters/BearerTokenAuthenticator.java ---------------------------------------------------------------------- diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/filters/BearerTokenAuthenticator.java b/oauth/src/main/java/org/jclouds/oauth/v2/filters/BearerTokenAuthenticator.java new file mode 100644 index 0000000..779ba44 --- /dev/null +++ b/oauth/src/main/java/org/jclouds/oauth/v2/filters/BearerTokenAuthenticator.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.oauth.v2.filters; + +import com.google.common.base.Supplier; +import org.jclouds.http.HttpException; +import org.jclouds.http.HttpRequest; +import org.jclouds.oauth.v2.domain.OAuthCredentials; + +import javax.inject.Inject; +import javax.inject.Singleton; + +@Singleton +public class BearerTokenAuthenticator implements OAuthAuthenticationFilter { + private final Supplier<OAuthCredentials> creds; + + @Inject + BearerTokenAuthenticator(final Supplier<OAuthCredentials> creds) { + this.creds = creds; + } + + @Override + public HttpRequest filter(HttpRequest request) throws HttpException { + return request.toBuilder().addHeader("Authorization", String.format("%s %s", + "Bearer ", creds.get().credential)).build(); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticationFilter.java ---------------------------------------------------------------------- diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticationFilter.java b/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticationFilter.java new file mode 100644 index 0000000..e6e5714 --- /dev/null +++ b/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticationFilter.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jclouds.oauth.v2.filters; + +import org.jclouds.http.HttpRequestFilter; + +/** + * Marker interface to specify auth mechanism (credentials or bearer token) + * + */ +public interface OAuthAuthenticationFilter extends HttpRequestFilter { + +} http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticator.java ---------------------------------------------------------------------- diff --git a/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticator.java b/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticator.java index e25bc20..c5c7b6f 100644 --- a/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticator.java +++ b/oauth/src/main/java/org/jclouds/oauth/v2/filters/OAuthAuthenticator.java @@ -20,7 +20,6 @@ import com.google.common.base.Function; import com.google.common.cache.LoadingCache; import org.jclouds.http.HttpException; import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpRequestFilter; import org.jclouds.oauth.v2.domain.Token; import org.jclouds.oauth.v2.domain.TokenRequest; import org.jclouds.rest.internal.GeneratedHttpRequest; @@ -36,7 +35,7 @@ import static com.google.common.base.Preconditions.checkState; * TODO when we're able to use the OAuthAuthentication an this should be used automatically */ @Singleton -public class OAuthAuthenticator implements HttpRequestFilter { +public class OAuthAuthenticator implements OAuthAuthenticationFilter { private Function<GeneratedHttpRequest, TokenRequest> tokenRequestBuilder; private Function<TokenRequest, Token> tokenFetcher; http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/bee98985/oauth/src/test/java/org/jclouds/oauth/v2/OAuthTestUtils.java ---------------------------------------------------------------------- diff --git a/oauth/src/test/java/org/jclouds/oauth/v2/OAuthTestUtils.java b/oauth/src/test/java/org/jclouds/oauth/v2/OAuthTestUtils.java index 7e27844..901cdfe 100644 --- a/oauth/src/test/java/org/jclouds/oauth/v2/OAuthTestUtils.java +++ b/oauth/src/test/java/org/jclouds/oauth/v2/OAuthTestUtils.java @@ -19,6 +19,8 @@ package org.jclouds.oauth.v2; import com.google.common.base.Charsets; import com.google.common.base.Throwables; import com.google.common.io.Files; +import org.jclouds.oauth.v2.config.CredentialType; +import org.jclouds.oauth.v2.config.OAuthProperties; import java.io.File; import java.io.IOException; @@ -46,6 +48,16 @@ public class OAuthTestUtils { } } + public static Properties bearerTokenAuthProperties(Properties properties) { + properties = properties == null ? new Properties() : properties; + properties.put("oauth.identity", "761326798069-r5mljlln1rd4lrbhg75efgigp36m7...@developer.gserviceaccount.com"); + properties.put("oauth.credential", "1/8xbJqaOZXSUZbHLl5EOtu1pxz3fmmetKx9W8CV4t79M"); + properties.put("oauth.endpoint", "http://localhost:5000/o/oauth2/token"); + properties.put(AUDIENCE, "https://accounts.google.com/o/oauth2/token"); + properties.put(OAuthProperties.CREDENTIAL_TYPE, CredentialType.BEARER_TOKEN_CREDENTIALS.toString()); + return properties; + } + public static String setCredential(Properties overrides, String key) { String val = null; String credentialFromFile = null;
