66from oidcrp .util import get_http_params
77from oidcrp .util import load_yaml_config
88from oidcrp .util import lower_or_upper
9+ from oidcrp .util import replace
10+ from oidcrp .util import set_param
911
1012try :
1113 from secrets import token_urlsafe as rnd_token
@@ -22,13 +24,9 @@ def __init__(self, conf: Dict) -> None:
2224 # server info
2325 self .domain = lower_or_upper (conf , "domain" )
2426 self .port = lower_or_upper (conf , "port" )
27+ format_args = {'domain' : self .domain , 'port' : self .port }
2528 for param in ["server_name" , "base_url" ]:
26- _pre = lower_or_upper (conf , param )
27- if _pre :
28- if '{domain}' in _pre :
29- setattr (self , param , _pre .format (domain = self .domain , port = self .port ))
30- else :
31- setattr (self , param , _pre )
29+ set_param (self , conf , param , ** format_args )
3230
3331 # HTTP params
3432 _params = get_http_params (conf .get ("http_params" ))
@@ -42,7 +40,7 @@ def __init__(self, conf: Dict) -> None:
4240 # diverse
4341 for param in ["html_home" , "session_cookie_name" , "preferred_url_scheme" ,
4442 "services" , "federation" ]:
45- setattr (self , param , lower_or_upper ( conf , param ) )
43+ set_param (self , conf , param )
4644
4745 rp_keys_conf = lower_or_upper (conf , 'rp_keys' )
4846 if rp_keys_conf is None :
@@ -53,16 +51,12 @@ def __init__(self, conf: Dict) -> None:
5351 for key , spec in _clients .items ():
5452 if key == "" :
5553 continue
56- if not spec .get ("redirect_uris" ):
57- continue
54+ # if not spec.get("redirect_uris"):
55+ # continue
5856
59- _redirects = []
60- for _r in spec ["redirect_uris" ]:
61- if '{domain}' in _r :
62- _redirects .append (_r .format (domain = self .domain , port = self .port ))
63- else :
64- _redirects .append (_r )
65- spec ["redirect_uris" ] = _redirects
57+ for uri in ['redirect_uris' , 'post_logout_redirect_uris' ,'frontchannel_logout_uri' ,
58+ 'backchannel_logout_uri' ]:
59+ replace (spec , uri , ** format_args )
6660
6761 setattr (self , "clients" , _clients )
6862
0 commit comments