summaryrefslogtreecommitdiff
path: root/src/saml2/mdstore.py
diff options
context:
space:
mode:
authorRoland Hedberg <roland.hedberg@adm.umu.se>2016-04-11 16:17:20 +0200
committerRoland Hedberg <roland.hedberg@adm.umu.se>2016-04-11 16:17:20 +0200
commit61afe88cd9d3b5f6bfdd499af6746867ee78c8d1 (patch)
treec6d8b0978997e395a6aa626084d9469f157029ad /src/saml2/mdstore.py
parent2ba6dd7cbae5eeed3f36a7ca8cad4f1e8ad2d1c5 (diff)
downloadpysaml2-61afe88cd9d3b5f6bfdd499af6746867ee78c8d1.tar.gz
add_header method and returning a byte string.
Fixed some PY3 problems service_per_endpoint method useful when setting up an entity instance.
Diffstat (limited to 'src/saml2/mdstore.py')
-rw-r--r--src/saml2/mdstore.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/saml2/mdstore.py b/src/saml2/mdstore.py
index 07f199e2..16297052 100644
--- a/src/saml2/mdstore.py
+++ b/src/saml2/mdstore.py
@@ -6,10 +6,13 @@ import sys
import json
import requests
import six
+
from hashlib import sha1
from os.path import isfile
from os.path import join
+from future.backports.test.support import import_module
+
from saml2 import md
from saml2 import saml
from saml2 import samlp
@@ -32,7 +35,6 @@ from saml2.validate import valid_instance
from saml2.time_util import valid
from saml2.validate import NotValid
from saml2.sigver import security_context
-from importlib import import_module
__author__ = 'rolandh'
@@ -225,7 +227,7 @@ class MetaData(object):
'''
raise NotImplementedError
- def load(self):
+ def load(self, *args, **kwargs):
'''
Loads the metadata
'''
@@ -634,7 +636,7 @@ class MetaDataFile(InMemoryMetaData):
def get_metadata_content(self):
return open(self.filename, 'rb').read()
- def load(self):
+ def load(self, *args, **kwargs):
_txt = self.get_metadata_content()
return self.parse_and_check_signature(_txt)
@@ -655,7 +657,7 @@ class MetaDataLoader(MetaDataFile):
@staticmethod
def get_metadata_loader(func):
- if callable(func):
+ if hasattr(func, '__call__'):
return func
i = func.rfind('.')
@@ -673,7 +675,7 @@ class MetaDataLoader(MetaDataFile):
'Module "%s" does not define a "%s" metadata loader' % (
module, attr))
- if not callable(metadata_loader):
+ if not hasattr(metadata_loader, '__call__'):
raise RuntimeError(
'Metadata loader %s.%s must be callable' % (module, attr))
@@ -710,7 +712,7 @@ class MetaDataExtern(InMemoryMetaData):
self.security = security
self.http = http
- def load(self):
+ def load(self, *args, **kwargs):
""" Imports metadata by the use of HTTP GET.
If the fingerprint is known the file will be checked for
compliance before it is imported.
@@ -734,7 +736,7 @@ class MetaDataMD(InMemoryMetaData):
super(MetaDataMD, self).__init__(attrc, **kwargs)
self.filename = filename
- def load(self):
+ def load(self, *args, **kwargs):
for key, item in json.loads(open(self.filename).read()):
self.entity[key] = item
@@ -760,7 +762,7 @@ class MetaDataMDX(InMemoryMetaData):
concatenated with the request URL sent to the MDX server. Defaults to
sha1 transformation.
"""
- super(MetaDataMDX, self).__init__(None, None)
+ super(MetaDataMDX, self).__init__(None, '')
self.url = url
if entity_transform:
@@ -769,7 +771,7 @@ class MetaDataMDX(InMemoryMetaData):
self.entity_transform = MetaDataMDX.sha1_entity_transform
- def load(self):
+ def load(self, *args, **kwargs):
# Do nothing
pass
@@ -807,7 +809,7 @@ class MetadataStore(MetaData):
:params ca_certs:
:params disable_ssl_certificate_validation:
"""
- self.attrc = attrc
+ MetaData.__init__(self, attrc, check_validity=check_validity)
if disable_ssl_certificate_validation:
self.http = HTTPBase(verify=False, ca_bundle=ca_certs)
@@ -821,12 +823,13 @@ class MetadataStore(MetaData):
self.filter = filter
self.to_old = {}
- def load(self, typ, *args, **kwargs):
+ def load(self, *args, **kwargs):
if self.filter:
_args = {"filter": self.filter}
else:
_args = {}
+ typ = args[0]
if typ == "local":
key = args[0]
# if library read every file in the library