diff options
author | Roland Hedberg <roland.hedberg@adm.umu.se> | 2013-01-18 14:59:00 +0100 |
---|---|---|
committer | Roland Hedberg <roland.hedberg@adm.umu.se> | 2013-01-18 14:59:00 +0100 |
commit | 13f327c0bc12fa22c7eb6ccbac608cc6baf4ba26 (patch) | |
tree | 5442524257c6d17095d9b3cd8b03132864958c5f /src/saml2/httpbase.py | |
parent | 21880631d9dc6ebdd22ca1d4a2c2c187e15b848b (diff) | |
download | pysaml2-13f327c0bc12fa22c7eb6ccbac608cc6baf4ba26.tar.gz |
Fixed artifact handling
Diffstat (limited to 'src/saml2/httpbase.py')
-rw-r--r-- | src/saml2/httpbase.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/saml2/httpbase.py b/src/saml2/httpbase.py index 41b1fd36..eb2e347b 100644 --- a/src/saml2/httpbase.py +++ b/src/saml2/httpbase.py @@ -2,6 +2,7 @@ import calendar import cookielib import copy import re +import urllib import urlparse import requests import time @@ -206,7 +207,19 @@ class HTTPBase(object): return http_redirect_message(message, destination, relay_state, typ) - def use_http_uri(self, message, typ, destination=""): + def use_http_artifact(self, message, destination="", relay_state=""): + if relay_state: + query = urllib.urlencode({"SAMLart": message, + "RelayState": relay_state}) + else: + query = urllib.urlencode({"SAMLart": message}) + info = { + "data": "", + "url": "%s?%s" % (destination, query) + } + return info + + def use_http_uri(self, message, typ, destination="", relay_state=""): if typ == "SAMLResponse": info = { "data": message.split("\n")[1], @@ -218,9 +231,14 @@ class HTTPBase(object): } elif typ == "SAMLRequest": # msg should be an identifier + if relay_state: + query = urllib.urlencode({"ID": message, + "RelayState": relay_state}) + else: + query = urllib.urlencode({"ID": message}) info = { "data": "", - "url": "%s?ID=%s" % (destination, message) + "url": "%s?%s" % (destination, query) } else: raise NotImplemented |