summaryrefslogtreecommitdiff
path: root/src/saml2/httpbase.py
diff options
context:
space:
mode:
authorRoland Hedberg <roland.hedberg@adm.umu.se>2013-01-18 14:59:00 +0100
committerRoland Hedberg <roland.hedberg@adm.umu.se>2013-01-18 14:59:00 +0100
commit13f327c0bc12fa22c7eb6ccbac608cc6baf4ba26 (patch)
tree5442524257c6d17095d9b3cd8b03132864958c5f /src/saml2/httpbase.py
parent21880631d9dc6ebdd22ca1d4a2c2c187e15b848b (diff)
downloadpysaml2-13f327c0bc12fa22c7eb6ccbac608cc6baf4ba26.tar.gz
Fixed artifact handling
Diffstat (limited to 'src/saml2/httpbase.py')
-rw-r--r--src/saml2/httpbase.py22
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