summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2016-09-30 16:17:31 -0400
committerMartin Basti <mbasti@redhat.com>2016-12-08 12:03:12 +0100
commitf1678693713dc2a573493e325e93f6f557a5ad5a (patch)
treee047741892ccfd248c7f70c9f756eafd317cefdf /ipalib
parent560ab9e3176af8e59163155207cc2c1d631915dd (diff)
downloadfreeipa-f1678693713dc2a573493e325e93f6f557a5ad5a.tar.gz
freeipa-f1678693713dc2a573493e325e93f6f557a5ad5a.tar.xz
freeipa-f1678693713dc2a573493e325e93f6f557a5ad5a.zip
Properly handle multiple cookies in rpc lib.
Signed-off-by: Simo Sorce <simo@redhat.com> Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/rpc.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/ipalib/rpc.py b/ipalib/rpc.py
index dc63dc321..bd25e6f13 100644
--- a/ipalib/rpc.py
+++ b/ipalib/rpc.py
@@ -699,12 +699,20 @@ class KerbTransport(SSLTransport):
principal = getattr(context, 'principal', None)
request_url = getattr(context, 'request_url', None)
- root_logger.debug("received Set-Cookie '%s'", cookie_header)
+ root_logger.debug("received Set-Cookie (%s)'%s'", type(cookie_header),
+ cookie_header)
+
+ if not isinstance(cookie_header, list):
+ cookie_header = [cookie_header]
# Search for the session cookie
try:
- session_cookie = Cookie.get_named_cookie_from_string(cookie_header,
- COOKIE_NAME, request_url)
+ for cookie in cookie_header:
+ session_cookie = \
+ Cookie.get_named_cookie_from_string(cookie, COOKIE_NAME,
+ request_url)
+ if session_cookie is not None:
+ break
except Exception as e:
root_logger.error("unable to parse cookie header '%s': %s", cookie_header, e)
return