5
5
import re
6
6
import urllib
7
7
from six .moves .urllib .parse import urlparse
8
+ from six .moves .urllib .parse import urlencode
8
9
import requests
9
10
import time
10
11
from six .moves .http_cookies import SimpleCookie
@@ -269,10 +270,10 @@ def use_http_form_post(message, destination, relay_state,
269
270
@staticmethod
270
271
def use_http_artifact (message , destination = "" , relay_state = "" ):
271
272
if relay_state :
272
- query = urllib . urlencode ({"SAMLart" : message ,
273
- "RelayState" : relay_state })
273
+ query = urlencode ({"SAMLart" : message ,
274
+ "RelayState" : relay_state })
274
275
else :
275
- query = urllib . urlencode ({"SAMLart" : message })
276
+ query = urlencode ({"SAMLart" : message })
276
277
info = {
277
278
"data" : "" ,
278
279
"url" : "%s?%s" % (destination , query )
@@ -281,9 +282,13 @@ def use_http_artifact(message, destination="", relay_state=""):
281
282
282
283
@staticmethod
283
284
def use_http_uri (message , typ , destination = "" , relay_state = "" ):
285
+ if "\n " in message :
286
+ data = message .split ("\n " )[1 ]
287
+ else :
288
+ data = message .strip ()
284
289
if typ == "SAMLResponse" :
285
290
info = {
286
- "data" : message . split ( " \n " )[ 1 ] ,
291
+ "data" : data ,
287
292
"headers" : [
288
293
("Content-Type" , "application/samlassertion+xml" ),
289
294
("Cache-Control" , "no-cache, no-store" ),
@@ -293,10 +298,10 @@ def use_http_uri(message, typ, destination="", relay_state=""):
293
298
elif typ == "SAMLRequest" :
294
299
# msg should be an identifier
295
300
if relay_state :
296
- query = urllib . urlencode ({"ID" : message ,
297
- "RelayState" : relay_state })
301
+ query = urlencode ({"ID" : message ,
302
+ "RelayState" : relay_state })
298
303
else :
299
- query = urllib . urlencode ({"ID" : message })
304
+ query = urlencode ({"ID" : message })
300
305
info = {
301
306
"data" : "" ,
302
307
"url" : "%s?%s" % (destination , query )
0 commit comments