Debugging Tempurl problems when using Swift+Keystone

Asked by Shri Javadekar

I am seeing a problem where everytime I try to use a tempurl, I get an "Unauthorized: Temp URL invalid" error. I don't find enough documentation about debugging tempurls. Hence this question.

If I want to configure tempurl, do I only have to add the following in the proxy-server conf and restart it?

<proxy-server.conf>

...
pipeline = catch_errors healthcheck cache authtoken tempurl swiftauth proxy-server
...
[filter:tempurl]
use = egg:swift#tempurl

</proxy-server.conf>

If this is all that is required, I have done this. From the swift command line utility, I can see the Meta Temp-Url-Key option set on the account as well. But when I use a tempUrl, I get the Unauthorized error. I logged the actual url and it looks something like this:

http://<proxy-server-ip>:8080/v1/AUTH_b3238727b1e94025b8eb38b60d1cef6b/cloud-testing/ae260ba046043710?temp_url_sig=3d11cc195a89916b71c77cc9c1c7201083d9dbf9&temp_url_expires=1364923538

I verified that the value of temp-url-expires is greater than the current time on the proxy server when it receives the request.

What else do I need to do?

Thanks in advance.
-Shri

P.S. FWIW: I'm using jclouds. The BlobRequestSigner::signGetBlob method creates the tempurl.

Question information

Language:
English Edit question
Status:
Solved
For:
OpenStack Object Storage (swift) Edit question
Assignee:
No assignee Edit question
Solved by:
Shri Javadekar
Solved:
Last query:
Last reply:
Revision history for this message
Shri Javadekar (shrinand) said :
#1

I added some additional logging into tempurl.py to debug this further. I see that 'QUERY_STRING' is not set in the 'env' dictionary. When can that happen?

Revision history for this message
Shri Javadekar (shrinand) said :
#2

Finally, I got the solution. You need the following in the proxy-server.conf

[filter:authtoken]
...
delay_auth_decision = 1