From b7ed4f34ab372e2ca16b9121cef0657b41c96bef Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Mon, 23 May 2016 14:21:10 -0700 Subject: [PATCH] Replace identity in RestAnnotationProcessor References jclouds/jclouds-labs#270. --- .../rest/internal/RestAnnotationProcessor.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java index 6027fcf38b9..efb775357d9 100644 --- a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java +++ b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java @@ -65,6 +65,7 @@ import javax.ws.rs.QueryParam; import org.jclouds.Constants; +import org.jclouds.domain.Credentials; import org.jclouds.http.HttpRequest; import org.jclouds.http.HttpRequestFilter; import org.jclouds.http.HttpUtils; @@ -81,6 +82,7 @@ import org.jclouds.io.payloads.Part; import org.jclouds.io.payloads.Part.PartOptions; import org.jclouds.javax.annotation.Nullable; +import org.jclouds.location.Provider; import org.jclouds.logging.Logger; import org.jclouds.reflect.Invocation; import org.jclouds.rest.Binder; @@ -147,6 +149,7 @@ public Part apply(Entry from) { private final Injector injector; private final HttpUtils utils; private final ContentMetadataCodec contentMetadataCodec; + private final Supplier credentials; private final String apiVersion; private final String buildVersion; private final InputParamValidator inputParamValidator; @@ -156,7 +159,8 @@ public Part apply(Entry from) { private final boolean connectionCloseHeader; @Inject - private RestAnnotationProcessor(Injector injector, @ApiVersion String apiVersion, @BuildVersion String buildVersion, + private RestAnnotationProcessor(Injector injector, + @Provider Supplier credentials, @ApiVersion String apiVersion, @BuildVersion String buildVersion, HttpUtils utils, ContentMetadataCodec contentMetadataCodec, InputParamValidator inputParamValidator, GetAcceptHeaders getAcceptHeaders, @Nullable @Named("caller") Invocation caller, @Named(Constants.PROPERTY_STRIP_EXPECT_HEADER) boolean stripExpectHeader, @@ -164,6 +168,7 @@ private RestAnnotationProcessor(Injector injector, @ApiVersion String apiVersion this.injector = injector; this.utils = utils; this.contentMetadataCodec = contentMetadataCodec; + this.credentials = credentials; this.apiVersion = apiVersion; this.buildVersion = buildVersion; this.inputParamValidator = inputParamValidator; @@ -226,6 +231,7 @@ public GeneratedHttpRequest apply(Invocation invocation) { Multimap tokenValues = LinkedHashMultimap.create(); + tokenValues.put(Constants.PROPERTY_IDENTITY, credentials.get().identity); tokenValues.put(Constants.PROPERTY_API_VERSION, apiVersion); tokenValues.put(Constants.PROPERTY_BUILD_VERSION, buildVersion); // URI template in rfc6570 form @@ -334,7 +340,7 @@ public GeneratedHttpRequest apply(Invocation invocation) { } if (invocation.getInvokable().isAnnotationPresent(PayloadParams.class)) { PayloadParams params = invocation.getInvokable().getAnnotation(PayloadParams.class); - addMapPayload(mapParams, params, headers); + addMapPayload(mapParams, params, headers, tokenValues); } request = mapBinder.bindToRequest(request, mapParams); } else { @@ -464,12 +470,12 @@ private void addQuery(Multimap queryParams, QueryParams query, M } private void addMapPayload(Map postParams, PayloadParams mapDefaults, - Multimap headers) { + Multimap headers, Multimap tokenValues) { for (int i = 0; i < mapDefaults.keys().length; i++) { if (mapDefaults.values()[i].equals(PayloadParams.NULL)) { postParams.put(mapDefaults.keys()[i], null); } else { - postParams.put(mapDefaults.keys()[i], replaceTokens(mapDefaults.values()[i], headers)); + postParams.put(mapDefaults.keys()[i], replaceTokens(replaceTokens(mapDefaults.values()[i], headers), tokenValues)); } } }