11import logging
22from urllib .parse import parse_qs
33
4- import werkzeug
54from flask import Blueprint
65from flask import current_app
76from flask import redirect
109from flask import session
1110from flask .helpers import make_response
1211from flask .helpers import send_from_directory
13- from oidcrp . exception import OidcServiceError
12+ import werkzeug
1413
15- import oidcrp
14+ from oidcrp import rp_handler
15+ from oidcrp .exception import OidcServiceError
1616
1717logger = logging .getLogger (__name__ )
1818
@@ -96,12 +96,13 @@ def finalize(op_hash, request_args):
9696 logger .error (rp .response [0 ].decode ())
9797 return rp .response [0 ], rp .status_code
9898
99- session ['client_id' ] = rp .service_context .get ('client_id' )
99+ _context = rp .client_get ("service_context" )
100+ session ['client_id' ] = _context .get ('client_id' )
100101
101102 session ['state' ] = request_args .get ('state' )
102103
103104 if session ['state' ]:
104- iss = rp . session_interface .get_iss (session ['state' ])
105+ iss = _context . state .get_iss (session ['state' ])
105106 else :
106107 return make_response ('Unknown state' , 400 )
107108
@@ -118,8 +119,9 @@ def finalize(op_hash, request_args):
118119 raise excp
119120
120121 if 'userinfo' in res :
122+ _context = rp .client_get ("service_context" )
121123 endpoints = {}
122- for k , v in rp . service_context . get ( ' provider_info' ) .items ():
124+ for k , v in _context . provider_info .items ():
123125 if k .endswith ('_endpoint' ):
124126 endp = k .replace ('_' , ' ' )
125127 endp = endp .capitalize ()
@@ -128,16 +130,16 @@ def finalize(op_hash, request_args):
128130 kwargs = {}
129131
130132 # Do I support session status checking ?
131- _status_check_info = rp . service_context .add_on .get ('status_check' )
133+ _status_check_info = _context .add_on .get ('status_check' )
132134 if _status_check_info :
133135 # Does the OP support session status checking ?
134- _chk_iframe = rp . service_context .get ('provider_info' ).get ('check_session_iframe' )
136+ _chk_iframe = _context .get ('provider_info' ).get ('check_session_iframe' )
135137 if _chk_iframe :
136138 kwargs ['check_session_iframe' ] = _chk_iframe
137139 kwargs ["status_check_iframe" ] = _status_check_info ['rp_iframe_path' ]
138140
139141 # Where to go if the user clicks on logout
140- kwargs ['logout_url' ] = "{}/logout" .format (rp . service_context .base_url )
142+ kwargs ['logout_url' ] = "{}/logout" .format (_context .base_url )
141143
142144 return render_template ('opresult.html' , endpoints = endpoints ,
143145 userinfo = res ['userinfo' ],
@@ -175,7 +177,8 @@ def session_iframe(): # session management
175177 logger .debug ('session_iframe request_args: {}' .format (request .args ))
176178
177179 _rp = get_rp (session ['op_hash' ])
178- session_change_url = "{}/session_change" .format (_rp .service_context .base_url )
180+ _context = _rp .client_get ("service_context" )
181+ session_change_url = "{}/session_change" .format (_context .base_url )
179182
180183 _issuer = current_app .rph .hash2issuer [session ['op_hash' ]]
181184 args = {
@@ -185,7 +188,7 @@ def session_iframe(): # session management
185188 'session_change_url' : session_change_url
186189 }
187190 logger .debug ('rp_iframe args: {}' .format (args ))
188- _template = _rp . service_context .add_on ["status_check" ]["session_iframe_template_file" ]
191+ _template = _context .add_on ["status_check" ]["session_iframe_template_file" ]
189192 return render_template (_template , ** args )
190193
191194
@@ -195,7 +198,7 @@ def session_change():
195198 _rp = get_rp (session ['op_hash' ])
196199
197200 # If there is an ID token send it along as a id_token_hint
198- _aserv = _rp .service_context . service [ 'authorization' ]
201+ _aserv = _rp .client_get ( " service" , 'authorization' )
199202 request_args = {"prompt" : "none" }
200203
201204 request_args = _aserv .multiple_extend_request_args (
@@ -214,7 +217,7 @@ def session_change():
214217def session_logout (op_hash ):
215218 _rp = get_rp (op_hash )
216219 logger .debug ('post_logout' )
217- return "Post logout from {}" .format (_rp .service_context . get ( ' issuer' ) )
220+ return "Post logout from {}" .format (_rp .client_get ( " service_context" ). issuer )
218221
219222
220223# RP initiated logout
@@ -230,7 +233,7 @@ def logout():
230233def backchannel_logout (op_hash ):
231234 _rp = get_rp (op_hash )
232235 try :
233- _state = oidcrp .backchannel_logout (request .data , _rp )
236+ _state = rp_handler .backchannel_logout (request .data , _rp )
234237 except Exception as err :
235238 logger .error ('Exception: {}' .format (err ))
236239 return 'System error!' , 400
@@ -244,7 +247,7 @@ def frontchannel_logout(op_hash):
244247 _rp = get_rp (op_hash )
245248 sid = request .args ['sid' ]
246249 _iss = request .args ['iss' ]
247- if _iss != _rp .service_context .get ('issuer' ):
250+ if _iss != _rp .client_get ( " service_context" ) .get ('issuer' ):
248251 return 'Bad request' , 400
249252 _state = _rp .session_interface .get_state_by_sid (sid )
250253 _rp .session_interface .remove_state (_state )
0 commit comments