Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 0727e61

Browse files
committed
Fixed things in the flask RP example.
1 parent f808236 commit 0727e61

1 file changed

Lines changed: 18 additions & 15 deletions

File tree

example/flask_rp/views.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import logging
22
from urllib.parse import parse_qs
33

4-
import werkzeug
54
from flask import Blueprint
65
from flask import current_app
76
from flask import redirect
@@ -10,9 +9,10 @@
109
from flask import session
1110
from flask.helpers import make_response
1211
from 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

1717
logger = 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():
214217
def 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():
230233
def 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

Comments
 (0)