Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Upgrade to pysaml 4.5
  • Loading branch information
vkurup committed May 18, 2018
commit 3ed883bb3b09ad097197618b02952dfd850274e3
3 changes: 2 additions & 1 deletion djangosaml2/tests/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ def create_conf(sp_host='sp.example.com', idp_hosts=['idp.example.com'],
},
'required_attributes': ['uid'],
'optional_attributes': ['eduPersonAffiliation'],
'idp': {} # this is filled later
'idp': {}, # this is filled later
'want_response_signed': False,
},
},

Expand Down
29 changes: 9 additions & 20 deletions djangosaml2/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@
import base64
import logging

try:
from xml.etree import ElementTree
except ImportError:
from elementtree import ElementTree

from django.conf import settings
from django.contrib import auth
from django.contrib.auth.decorators import login_required
Expand Down Expand Up @@ -185,9 +180,11 @@ def login(request,
'sha256': SIG_RSA_SHA256}
sig_alg_option = getattr(conf, '_sp_authn_requests_signed_alg', 'sha1')
sigalg = sig_alg_option_map[sig_alg_option] if sign_requests else None
nsprefix = get_namespace_prefixes()
session_id, result = client.prepare_for_authenticate(
entityid=selected_idp, relay_state=came_from,
binding=binding, sign=False, sigalg=sigalg)
binding=binding, sign=False, sigalg=sigalg,
nsprefix=nsprefix)
except TypeError as e:
logger.error('Unable to know which IdP to use')
return HttpResponse(text_type(e))
Expand Down Expand Up @@ -486,24 +483,16 @@ def metadata(request, config_loader_path=None, valid_for=None):
content_type="text/xml; charset=utf8")


def register_namespace_prefixes():
def get_namespace_prefixes():
from saml2 import md, saml, samlp
try:
from saml2 import xmlenc
from saml2 import xmldsig
except ImportError:
import xmlenc
import xmldsig
prefixes = (('saml', saml.NAMESPACE),
('samlp', samlp.NAMESPACE),
('md', md.NAMESPACE),
('ds', xmldsig.NAMESPACE),
('xenc', xmlenc.NAMESPACE))
if hasattr(ElementTree, 'register_namespace'):
for prefix, namespace in prefixes:
ElementTree.register_namespace(prefix, namespace)
else:
for prefix, namespace in prefixes:
ElementTree._namespace_map[namespace] = prefix

register_namespace_prefixes()
return {'saml': saml.NAMESPACE,
'samlp': samlp.NAMESPACE,
'md': md.NAMESPACE,
'ds': xmldsig.NAMESPACE,
'xenc': xmlenc.NAMESPACE}
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def read(*rnames):
'defusedxml>=0.4.1',
'Django>=1.8',
'enum34;python_version > "3" and python_version < "3.4"',
'pysaml2==4.4.0',
'pysaml2==4.5.0',
],
extras_require=extra,
)