forked from ScoDoc/ScoDoc
CAS: améliore traitement erreurs réponse serveur CAS
This commit is contained in:
parent
ad1d8c3541
commit
952d2e2bd8
@ -114,7 +114,7 @@ def logout():
|
|||||||
return flask.redirect(redirect_url)
|
return flask.redirect(redirect_url)
|
||||||
|
|
||||||
|
|
||||||
def validate(ticket):
|
def validate(ticket) -> bool:
|
||||||
"""
|
"""
|
||||||
Will attempt to validate the ticket. If validation fails, then False
|
Will attempt to validate the ticket. If validation fails, then False
|
||||||
is returned. If validation is successful, then True is returned
|
is returned. If validation is successful, then True is returned
|
||||||
@ -172,15 +172,22 @@ def validate(ticket):
|
|||||||
if "cas:authenticationSuccess" in xml_from_dict["cas:serviceResponse"]
|
if "cas:authenticationSuccess" in xml_from_dict["cas:serviceResponse"]
|
||||||
else False
|
else False
|
||||||
)
|
)
|
||||||
except (ValueError, ExpatError) as exc:
|
except (ValueError, ExpatError, KeyError) as exc:
|
||||||
current_app.logger.error(f"CAS returned unexpected result: {exc}")
|
current_app.logger.error(f"CAS returned unexpected result: {exc}")
|
||||||
|
current_app.logger.error(f"Received data from CAS server:\n{xmldump}\n\n")
|
||||||
if cas_error_callback:
|
if cas_error_callback:
|
||||||
cas_error_callback("réponse invalide du serveur CAS")
|
cas_error_callback("réponse invalide du serveur CAS")
|
||||||
|
return False # unreachable (cas_error_callback should raise exception)
|
||||||
except URLError:
|
except URLError:
|
||||||
current_app.logger.error("CAS : error validating token: check SSL certificate")
|
current_app.logger.error("CAS : error validating token: check SSL certificate")
|
||||||
cas_error_callback(
|
cas_error_callback(
|
||||||
"erreur connexion au serveur CAS: vérifiez le certificat SSL"
|
"erreur connexion au serveur CAS: vérifiez le certificat SSL"
|
||||||
)
|
)
|
||||||
|
return False # unreachable
|
||||||
|
except Exception as exc:
|
||||||
|
current_app.logger.error(f"CAS : unkown error validating token: {exc}")
|
||||||
|
cas_error_callback("erreur décodage réponse CAS")
|
||||||
|
return False # unreachable
|
||||||
|
|
||||||
if is_valid:
|
if is_valid:
|
||||||
current_app.logger.debug("valid")
|
current_app.logger.debug("valid")
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
"Infos sur version ScoDoc"
|
"Infos sur version ScoDoc"
|
||||||
|
|
||||||
SCOVERSION = "9.7.58"
|
SCOVERSION = "9.7.59"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
@ -491,7 +491,7 @@ def user_edit(
|
|||||||
dept=None,
|
dept=None,
|
||||||
verbose=False,
|
verbose=False,
|
||||||
):
|
):
|
||||||
"""Add or remove a role to the given user in the given dept"""
|
"""Modify or display user's account attributes."""
|
||||||
user: User = User.query.filter_by(user_name=username).first()
|
user: User = User.query.filter_by(user_name=username).first()
|
||||||
if not user:
|
if not user:
|
||||||
sys.stderr.write(f"user_role: user {username} does not exists\n")
|
sys.stderr.write(f"user_role: user {username} does not exists\n")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user