Fix more renamed modules/functions for py3

In doing so it was discovered that the 'implements' function has been
replaced by a class decorator, which must be used in python3.

Also commented out method arguments seem to expose internal py.test
problems in python3. Removing them seems fine since we can look in
revision history if we need to find the exact way it was used before.
This commit is contained in:
Clint Byrum
2015-05-27 00:11:32 -07:00
parent ed5d61787e
commit c76eaf78fe
11 changed files with 26 additions and 54 deletions

View File

@@ -1,6 +1,4 @@
from urllib import urlencode from six.moves.urllib.parse import urlencode, parse_qs, urlparse
from urlparse import parse_qs
from urlparse import urlparse
from saml2.entity import Entity from saml2.entity import Entity
from saml2.response import VerificationError from saml2.response import VerificationError

View File

@@ -7,7 +7,7 @@ Contains a class that can do SAML ECP Authentication for other python
programs. programs.
""" """
import cookielib from six.moves import http_cookiejar as cookielib
import logging import logging
from saml2 import soap from saml2 import soap

View File

@@ -5,9 +5,8 @@ import time
import cgi import cgi
import six import six
from urllib import quote from six.moves.urllib.parse import quote, parse_qs
from urlparse import parse_qs from six.moves.http_cookies import SimpleCookie
from Cookie import SimpleCookie
from saml2 import BINDING_HTTP_ARTIFACT, SAMLError from saml2 import BINDING_HTTP_ARTIFACT, SAMLError
from saml2 import BINDING_HTTP_REDIRECT from saml2 import BINDING_HTTP_REDIRECT

View File

@@ -10,10 +10,9 @@ Bindings normally consists of three parts:
- how to package the information - how to package the information
- which protocol to use - which protocol to use
""" """
from six.moves.urllib.parse import urlparse from six.moves.urllib.parse import urlparse, urlencode
import saml2 import saml2
import base64 import base64
import urllib
from saml2.s_utils import deflate_and_base64_encode from saml2.s_utils import deflate_and_base64_encode
from saml2.s_utils import Unsupported from saml2.s_utils import Unsupported
import logging import logging
@@ -126,12 +125,12 @@ def http_redirect_message(message, location, relay_state="", typ="SAMLRequest",
except: except:
raise Unsupported("Signing algorithm") raise Unsupported("Signing algorithm")
else: else:
string = "&".join([urllib.urlencode({k: args[k]}) string = "&".join([urlencode({k: args[k]})
for k in _order if k in args]) for k in _order if k in args])
args["Signature"] = base64.b64encode(signer.sign(string, key)) args["Signature"] = base64.b64encode(signer.sign(string, key))
string = urllib.urlencode(args) string = urlencode(args)
else: else:
string = urllib.urlencode(args) string = urlencode(args)
glue_char = "&" if urlparse(location).query else "?" glue_char = "&" if urlparse(location).query else "?"
login_url = glue_char.join([location, string]) login_url = glue_char.join([location, string])

View File

@@ -13,11 +13,11 @@ import shelve
import traceback import traceback
import saml2 import saml2
import six import six
from urlparse import parse_qs, urlparse from six.moves.urllib.parse import parse_qs, urlparse
from saml2.samlp import Extensions from saml2.samlp import Extensions
from saml2 import xmldsig as ds from saml2 import xmldsig as ds
from StringIO import StringIO from six import StringIO
from paste.httpexceptions import HTTPSeeOther, HTTPRedirection from paste.httpexceptions import HTTPSeeOther, HTTPRedirection
from paste.httpexceptions import HTTPNotImplemented from paste.httpexceptions import HTTPNotImplemented
@@ -27,7 +27,7 @@ from paste.request import construct_url
from saml2.extension.pefim import SPCertEnc from saml2.extension.pefim import SPCertEnc
from saml2.httputil import SeeOther from saml2.httputil import SeeOther
from saml2.client_base import ECP_SERVICE from saml2.client_base import ECP_SERVICE
from zope.interface import implements from zope.interface import implementer
from repoze.who.interfaces import IChallenger, IIdentifier, IAuthenticator from repoze.who.interfaces import IChallenger, IIdentifier, IAuthenticator
from repoze.who.interfaces import IMetadataProvider from repoze.who.interfaces import IMetadataProvider
@@ -80,8 +80,8 @@ class ECP_response(object):
return [self.content] return [self.content]
@implementer(IChallenger, IIdentifier, IAuthenticator, IMetadataProvider)
class SAML2Plugin(object): class SAML2Plugin(object):
implements(IChallenger, IIdentifier, IAuthenticator, IMetadataProvider)
def __init__(self, rememberer_name, config, saml_client, wayf, cache, def __init__(self, rememberer_name, config, saml_client, wayf, cache,
sid_store=None, discovery="", idp_query_param="", sid_store=None, discovery="", idp_query_param="",

View File

@@ -1,4 +1,4 @@
from urlparse import parse_qs from six.moves.urllib.parse import parse_qs
from saml2.authn_context import INTERNETPROTOCOLPASSWORD from saml2.authn_context import INTERNETPROTOCOLPASSWORD
from saml2.samlp import attribute_query_from_string, logout_request_from_string from saml2.samlp import attribute_query_from_string, logout_request_from_string
from saml2 import BINDING_HTTP_REDIRECT, pack from saml2 import BINDING_HTTP_REDIRECT, pack

View File

@@ -3,7 +3,7 @@
import base64 import base64
import os import os
from contextlib import closing from contextlib import closing
from urlparse import parse_qs from six.moves.urllib.parse import parse_qs
import uuid import uuid
from saml2.cert import OpenSSLWrapper from saml2.cert import OpenSSLWrapper
@@ -540,7 +540,6 @@ class TestServer1():
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
pefim=True, pefim=True,
#encrypted_advice_attributes=True,
encrypt_cert_advice=cert_str, encrypt_cert_advice=cert_str,
) )
@@ -680,7 +679,6 @@ class TestServer1():
sign_assertion=True, sign_assertion=True,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice=cert_str, encrypt_cert_advice=cert_str,
) )
@@ -741,7 +739,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice=cert_str_advice, encrypt_cert_advice=cert_str_advice,
) )
@@ -774,7 +771,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice=cert_str_advice, encrypt_cert_advice=cert_str_advice,
) )
@@ -867,7 +863,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True pefim=True
) )
@@ -900,7 +895,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice=cert_str_advice, encrypt_cert_advice=cert_str_advice,
encrypt_cert_assertion=cert_str_assertion encrypt_cert_assertion=cert_str_assertion
@@ -935,7 +929,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True pefim=True
) )
@@ -965,7 +958,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice="whatever", encrypt_cert_advice="whatever",
encrypt_cert_assertion="whatever" encrypt_cert_assertion="whatever"
@@ -987,7 +979,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice="whatever", encrypt_cert_advice="whatever",
) )
@@ -1030,7 +1021,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice="whatever", encrypt_cert_advice="whatever",
encrypt_cert_assertion="whatever" encrypt_cert_assertion="whatever"
@@ -1052,7 +1042,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice="whatever", encrypt_cert_advice="whatever",
) )
@@ -1095,7 +1084,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
) )
@@ -1111,7 +1099,6 @@ class TestServer1():
sign_assertion=False, sign_assertion=False,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True pefim=True
) )

View File

@@ -5,7 +5,8 @@ import base64
import uuid import uuid
import six import six
import urllib import urllib
import urlparse from six.moves.urllib.parse import parse_qs
from six.moves.urllib.parse import urlparse
from saml2.cert import OpenSSLWrapper from saml2.cert import OpenSSLWrapper
from saml2.xmldsig import SIG_RSA_SHA256 from saml2.xmldsig import SIG_RSA_SHA256
from saml2 import BINDING_HTTP_POST from saml2 import BINDING_HTTP_POST
@@ -415,7 +416,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -423,7 +423,6 @@ class TestClient:
sign_assertion=True, sign_assertion=True,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_advice=cert_str encrypt_cert_advice=cert_str
) )
@@ -453,7 +452,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -461,7 +459,6 @@ class TestClient:
sign_assertion=True, sign_assertion=True,
encrypt_assertion=False, encrypt_assertion=False,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
) )
@@ -490,7 +487,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -498,7 +494,6 @@ class TestClient:
sign_assertion=True, sign_assertion=True,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
) )
@@ -535,7 +530,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -543,7 +537,6 @@ class TestClient:
sign_assertion=True, sign_assertion=True,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_assertion=cert_str encrypt_cert_assertion=cert_str
) )
@@ -589,7 +582,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -597,7 +589,6 @@ class TestClient:
sign_assertion=True, sign_assertion=True,
encrypt_assertion=True, encrypt_assertion=True,
encrypt_assertion_self_contained=True, encrypt_assertion_self_contained=True,
#encrypted_advice_attributes=True,
pefim=True, pefim=True,
encrypt_cert_assertion=cert_assertion_str, encrypt_cert_assertion=cert_assertion_str,
encrypt_cert_advice=cert_advice_str encrypt_cert_advice=cert_advice_str
@@ -628,7 +619,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -672,7 +662,6 @@ class TestClient:
in_response_to="id1", in_response_to="id1",
destination="http://lingon.catalogix.se:8087/", destination="http://lingon.catalogix.se:8087/",
sp_entity_id="urn:mace:example.com:saml:roland:sp", sp_entity_id="urn:mace:example.com:saml:roland:sp",
#name_id_policy=nameid_policy,
name_id=self.name_id, name_id=self.name_id,
userid="foba0001@example.com", userid="foba0001@example.com",
authn=AUTHN, authn=AUTHN,
@@ -1177,7 +1166,7 @@ class TestClient:
relay_state="relay2", sigalg=SIG_RSA_SHA256, key=key) relay_state="relay2", sigalg=SIG_RSA_SHA256, key=key)
loc = info["headers"][0][1] loc = info["headers"][0][1]
qs = urlparse.parse_qs(loc[1:]) qs = parse_qs(loc[1:])
assert _leq(qs.keys(), assert _leq(qs.keys(),
['SigAlg', 'SAMLRequest', 'RelayState', 'Signature']) ['SigAlg', 'SAMLRequest', 'RelayState', 'Signature'])
@@ -1214,8 +1203,8 @@ class TestClientWithDummy():
assert http_args["headers"][0][0] == "Location" assert http_args["headers"][0][0] == "Location"
assert http_args["data"] == [] assert http_args["data"] == []
redirect_url = http_args["headers"][0][1] redirect_url = http_args["headers"][0][1]
_, _, _, _, qs, _ = urlparse.urlparse(redirect_url) _, _, _, _, qs, _ = urlparse(redirect_url)
qs_dict = urlparse.parse_qs(qs) qs_dict = parse_qs(qs)
req = self.server.parse_authn_request(qs_dict["SAMLRequest"][0], req = self.server.parse_authn_request(qs_dict["SAMLRequest"][0],
binding) binding)
resp_args = self.server.response_args(req.message, [response_binding]) resp_args = self.server.response_args(req.message, [response_binding])
@@ -1234,8 +1223,8 @@ class TestClientWithDummy():
assert http_args["headers"][0][0] == "Location" assert http_args["headers"][0][0] == "Location"
assert http_args["data"] == [] assert http_args["data"] == []
redirect_url = http_args["headers"][0][1] redirect_url = http_args["headers"][0][1]
_, _, _, _, qs, _ = urlparse.urlparse(redirect_url) _, _, _, _, qs, _ = urlparse(redirect_url)
qs_dict = urlparse.parse_qs(qs) qs_dict = parse_qs(qs)
req = self.server.parse_authn_request(qs_dict["SAMLRequest"][0], req = self.server.parse_authn_request(qs_dict["SAMLRequest"][0],
binding) binding)
resp_args = self.server.response_args(req.message, [response_binding]) resp_args = self.server.response_args(req.message, [response_binding])

View File

@@ -1,8 +1,8 @@
import base64 import base64
from contextlib import closing from contextlib import closing
from hashlib import sha1 from hashlib import sha1
from urlparse import urlparse from six.moves.urllib.parse import urlparse
from urlparse import parse_qs from six.moves.urllib.parse import parse_qs
from saml2 import BINDING_HTTP_ARTIFACT from saml2 import BINDING_HTTP_ARTIFACT
from saml2 import BINDING_SOAP from saml2 import BINDING_SOAP
from saml2 import BINDING_HTTP_POST from saml2 import BINDING_HTTP_POST

View File

@@ -1,5 +1,5 @@
from contextlib import closing from contextlib import closing
from urlparse import urlparse, parse_qs from six.moves.urllib.parse import urlparse, parse_qs
from saml2 import BINDING_SOAP, BINDING_HTTP_POST from saml2 import BINDING_SOAP, BINDING_HTTP_POST
__author__ = 'rolandh' __author__ = 'rolandh'

View File

@@ -7,7 +7,7 @@ from saml2.server import Server
from saml2 import BINDING_HTTP_REDIRECT from saml2 import BINDING_HTTP_REDIRECT
from saml2.client import Saml2Client from saml2.client import Saml2Client
from saml2.config import SPConfig from saml2.config import SPConfig
from urlparse import parse_qs from six.moves.urllib.parse import parse_qs
from pathutils import dotname from pathutils import dotname