diff options
author | Simo Sorce <simo@redhat.com> | 2016-09-30 16:17:31 -0400 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-12-08 12:03:12 +0100 |
commit | f1678693713dc2a573493e325e93f6f557a5ad5a (patch) | |
tree | e047741892ccfd248c7f70c9f756eafd317cefdf /ipalib/rpc.py | |
parent | 560ab9e3176af8e59163155207cc2c1d631915dd (diff) | |
download | freeipa-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/rpc.py')
-rw-r--r-- | ipalib/rpc.py | 14 |
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 |