1414from oidcmsg .time_util import time_sans_frac
1515from oidcservice import rndstr
1616from oidcservice .exception import OidcServiceError
17+ from oidcservice .service_factory import service_factory
1718from oidcservice .state_interface import InMemoryStateDataBase
1819from oidcservice .state_interface import StateInterface
1920
2223from oidcrp import provider
2324
2425__author__ = 'Roland Hedberg'
25- __version__ = '0.5 .0'
26+ __version__ = '0.6 .0'
2627
2728logger = logging .getLogger (__name__ )
2829
@@ -110,7 +111,7 @@ class RPHandler(object):
110111 def __init__ (self , base_url = '' , hash_seed = "" , keyjar = None , verify_ssl = True ,
111112 services = None , service_factory = None , client_configs = None ,
112113 client_authn_factory = None , client_cls = None ,
113- state_db = None , http_lib = None , ** kwargs ):
114+ state_db = None , http_lib = None , module_dirs = None , ** kwargs ):
114115 self .base_url = base_url
115116 self .hash_seed = as_bytes (hash_seed )
116117 self .verify_ssl = verify_ssl
@@ -135,6 +136,7 @@ def __init__(self, base_url='', hash_seed="", keyjar=None, verify_ssl=True,
135136 self .service_factory = service_factory or factory
136137 self .client_authn_factory = client_authn_factory
137138 self .client_configs = client_configs
139+ self .module_dirs = module_dirs or ['oidc' , 'oauth2' ]
138140
139141 # keep track on which RP instance that serves with OP
140142 self .issuer2rp = {}
@@ -207,7 +209,7 @@ def init_client(self, issuer):
207209 client_authn_factory = self .client_authn_factory ,
208210 verify_ssl = self .verify_ssl , services = _services ,
209211 service_factory = self .service_factory , config = _cnf ,
210- httplib = self .httplib
212+ httplib = self .httplib , module_dirs = self . module_dirs
211213 )
212214 except Exception as err :
213215 logger .error ('Failed initiating client: {}' .format (err ))
@@ -872,7 +874,7 @@ def get_provider_specific_service(service_provider, service, **kwargs):
872874 return None
873875
874876
875- def factory (service_name , ** kwargs ):
877+ def factory (service_name , ignore , ** kwargs ):
876878 """
877879 A factory the given a service name will return a
878880 :py:class:`oidcservice.service.Service` instance if a service matching the
@@ -887,10 +889,10 @@ def factory(service_name, **kwargs):
887889 if '.' in service_name :
888890 group , name = service_name .split ('.' )
889891 if group == 'oauth2' :
890- oauth2 . service . factory (service_name [1 ], ** kwargs )
892+ service_factory (service_name [1 ], [ 'oauth2' ], ** kwargs )
891893 elif group == 'oidc' :
892- oidc . service . factory (service_name [1 ], ** kwargs )
894+ service_factory (service_name [1 ], [ 'oidc' ], ** kwargs )
893895 else :
894896 return get_provider_specific_service (group , name , ** kwargs )
895897 else :
896- return oidc . service . factory (service_name , ** kwargs )
898+ return service_factory (service_name , [ 'oidc' , 'oauth2' ] , ** kwargs )
0 commit comments