Hide Forgot
Description of problem: If oauth is enabled, authentication fails when trying to make a request with multiple parameters that have same name. Eg. /repositories/?_intersect=groupid&groupid=product:1319641168168&groupid=env:1 According to log, oauth base string is calculated incorrectly: pulp.server.auth.authentication:ERROR: authentication:214 error verifying OAuth signature: Invalid signature. Expected signature base string: GET&https%3A%2F%2Flocalhost%2Fpulp%2Fapi%2Frepositories%2F&_intersect%3Dgroupid%26groupid%3Dproduct%3A1319641168168%26oauth_consumer_key%3Dkatello%26oauth_nonce%3DHXxQnvo0H3f9kfEctEI3iFoQylDNIlnsZ4NMC1DsnI%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1319706227%26oauth_version%3D1.0 In this case it uses only the first groupid parameter and ignores the rest. Everything works fine for requests with only one groupid.
According to my investigation I guess the problem is in python oauth implementation. Function _split_url_string in http://oauth.googlecode.com/svn/code/python/oauth/oauth.py parses the query parameters and saves them into a hash.
We've solved this by going to a patched version of oauth2: 1.5.170
build: 0.255
testing 1. add oauth credential to admin 2. use curl or wget to fetch the url http://localhost/pulp/api/tasks/?state=waiting&state=running along with the oauth credentials 3. success: list of task in the waiting or running state failure: authentication failure
verified
Pulp v1.1 Release