From 833f046a5ce54b1fc1ea1674d3baf743143fb517 Mon Sep 17 00:00:00 2001 From: Zack Shoylev Date: Tue, 9 Jul 2013 14:04:08 -0500 Subject: [PATCH] A 401 error should result in re-authenticating for a new token --- .../openstack/keystone/v2_0/handlers/RetryOnRenew.java | 4 ++-- .../openstack/keystone/v2_0/handlers/RetryOnRenewTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenew.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenew.java index d3584846e9..835e65e01b 100644 --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenew.java +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenew.java @@ -64,8 +64,8 @@ public class RetryOnRenew implements HttpRetryHandler { retry = false; } else { byte[] content = closeClientButKeepContentStream(response); - //TODO: what is the error when the session token expires?? - if (content != null && new String(content).contains("lease renew")) { + // Error when the session token expires: HTTP/1.1 401 Unauthorized, no body (or provider-specific response body) + if (content != null) { logger.debug("invalidating authentication token"); authenticationResponseCache.invalidateAll(); retry = true; diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenewTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenewTest.java index f15270106c..87beb379f3 100644 --- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenewTest.java +++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v2_0/handlers/RetryOnRenewTest.java @@ -53,7 +53,7 @@ public class RetryOnRenewTest { cache.invalidateAll(); expectLastCall(); - expect(response.getPayload()).andReturn(Payloads.newStringPayload("token expired, please renew")).anyTimes(); + expect(response.getPayload()).andReturn(Payloads.newStringPayload("")).anyTimes(); expect(response.getStatusCode()).andReturn(401).atLeastOnce(); replay(command);