https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342019-08-10T09:58:48ZRedmine Entr’ouvertCombo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=1866262019-08-10T09:58:48ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/36541">0001-fargo-do-not-log-403-response-as-errors-35352.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/36541/0001-fargo-do-not-log-403-response-as-errors-35352.patch">0001-fargo-do-not-log-403-response-as-errors-35352.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Solution proposée</i></li><li><strong>Patch proposed</strong> changé de <i>Non</i> à <i>Oui</i></li></ul> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=1868972019-08-13T11:59:58ZThomas Noël
<ul></ul><p>Je dirais que c'est plutôt à fargo de répondre "vide" dans ce cas (et donc ne faire le 403 que sur les pépins de signature), voire répondre un err:1 ... mais ce n'est pas possible dans fargo car tout se joue trop tôt (Django Rest Framework).</p>
<p>Bref, je ne suis pas chaud, ne pas avoir d'alerte en cas de panne du système de signature, ça m'ennuie un peu. Et je n'ai pas souvenir d'avoir tant rencontré la trace ci-dessus (toi, si ?)</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=1868982019-08-13T12:02:55ZBenjamin Dauvergne
<ul></ul><p>Thomas Noël a écrit :</p>
<blockquote>
<p>Je dirais que c'est plutôt à fargo de répondre "vide" dans ce cas (et donc ne faire le 403 que sur les pépins de signature), voire répondre un err:1 ... mais ce n'est pas possible dans fargo car tout se joue trop tôt (Django Rest Framework).</p>
</blockquote>
<p>À vrai dire je n'ai même pas trouvé dans le code DRF d'où vient ce 403, c'est une exception PermissionDenied normalement et je n'en vois pas au moment du check d'authentification, on lève un AuthenticationFailed qui devrait donner une 401.</p>
<blockquote>
<p>Bref, je ne suis pas chaud, ne pas avoir d'alerte en cas de panne du système de signature, ça m'ennuie un peu. Et je n'ai pas souvenir d'avoir tant rencontré la trace ci-dessus (toi, si ?)</p>
</blockquote>
<p>Oui tous les déploiements avec un fargo dès qu'il y a une cellule dernier document, ça en produit sur les utilisateurs non provisionnés.</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=1869022019-08-13T12:28:35ZThomas Noël
<ul></ul><p>Benjamin Dauvergne a écrit :</p>
<blockquote>
<p>Oui tous les déploiements avec un fargo dès qu'il y a une cellule dernier document, ça en produit sur les utilisateurs non provisionnés.</p>
</blockquote>
<p>C'est un peu ça qui m'étonne, les "utilisateurs non provisionnés", c'est pas si fréquent normalement... le cas que je vois c'est dans la seconde après la création du compte, retour sur la page d'accueil qui présente les derniers documents, et boum ?</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=1869172019-08-13T13:19:57ZBenjamin Dauvergne
<ul></ul><p>Thomas Noël a écrit :</p>
<blockquote>
<p>Benjamin Dauvergne a écrit :</p>
<blockquote>
<p>Oui tous les déploiements avec un fargo dès qu'il y a une cellule dernier document, ça en produit sur les utilisateurs non provisionnés.</p>
</blockquote>
<p>C'est un peu ça qui m'étonne, les "utilisateurs non provisionnés", c'est pas si fréquent normalement... le cas que je vois c'est dans la seconde après la création du compte, retour sur la page d'accueil qui présente les derniers documents, et boum ?</p>
</blockquote>
<p>Ben c'est les gens inscrits avant qu'on déploie fargo, à moins d'être sûr de toujours déployer fargo avant toute mise en prod on en aura d'autres, jusqu'à ce qu'on provisionne autrement.</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=1869182019-08-13T13:24:19ZThomas Noël
<ul></ul><p>Benjamin Dauvergne a écrit :</p>
<blockquote>
<p>Thomas Noël a écrit :</p>
<blockquote>
<p>Benjamin Dauvergne a écrit :</p>
<blockquote>
<p>Oui tous les déploiements avec un fargo dès qu'il y a une cellule dernier document, ça en produit sur les utilisateurs non provisionnés.</p>
</blockquote>
<p>C'est un peu ça qui m'étonne, les "utilisateurs non provisionnés", c'est pas si fréquent normalement... le cas que je vois c'est dans la seconde après la création du compte, retour sur la page d'accueil qui présente les derniers documents, et boum ?</p>
</blockquote>
<p>Ben c'est les gens inscrits avant qu'on déploie fargo, à moins d'être sûr de toujours déployer fargo avant toute mise en prod on en aura d'autres, jusqu'à ce qu'on provisionne autrement.</p>
</blockquote>
<p>« authentic hobo_provision --users » et hop</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2151422020-02-12T12:53:33ZBenjamin Dauvergne
<ul></ul><p>Je ne suis pas tellement d'accord, supposer que le provisionning des usagers fonctionne à 100% en temps réel c'est casse gueule, je pense que ce patch est utile.</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2151842020-02-12T14:06:19ZThomas Noël
<ul></ul><p>Benjamin Dauvergne a écrit :</p>
<blockquote>
<p>Je ne suis pas tellement d'accord, supposer que le provisionning des usagers fonctionne à 100% en temps réel c'est casse gueule, je pense que ce patch est utile.</p>
</blockquote>
<p>Fargo a aussi un front, donc on a aussi du provisionning via SAML (et pour le coup "100% temps réel") dès que la personne clique sur "mes documents". Je reste pas chaud à cacher les 403 (et comme dit plus haut je préférerais qu'on creuse hobo/rest_authentication.py pour voir si vraiment on peut envoyer un err:1 quand l'utilisateur n'existe pas... même si j'ai pas vu de chemin pour faire ça)</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2152412020-02-12T16:31:46ZBenjamin Dauvergne
<ul></ul><p>J'ai trouvé l'origine de la 403 (ça convertit en 403 tout ce qui est 401 mais ne vient pas d'un mode d'authentification HTTP classique, i.e. via un entête Authorization, parce que c'est des nazis du code HTTP) :<br /><pre>
def handle_exception(self, exc):
"""
Handle any exception that occurs, by returning an appropriate response,
or re-raising the error.
"""
if isinstance(exc, (exceptions.NotAuthenticated,
exceptions.AuthenticationFailed)):
# WWW-Authenticate header for 401 responses, else coerce to 403
auth_header = self.get_authenticate_header(self.request)
if auth_header:
exc.auth_header = auth_header
else:
exc.status_code = status.HTTP_403_FORBIDDEN
</pre></p>
<p>On pourrait passer par une erreur APIException et faire une 401 avec err=1 en loucedé, ça t'irait ? Mais ça va devoir aller dans hobo.</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2152702020-02-12T18:52:10ZBenjamin Dauvergne
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>Information nécessaire</i></li><li><strong>Assigné à</strong> changé de <i>Benjamin Dauvergne</i> à <i>Thomas Noël</i></li></ul> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2152752020-02-12T23:55:05ZThomas Noël
<ul><li><strong>Assigné à</strong> changé de <i>Thomas Noël</i> à <i>Benjamin Dauvergne</i></li></ul><blockquote>
<p>On pourrait passer par une erreur APIException et faire une 401 avec err=1 en loucedé, ça t'irait ? Mais ça va devoir aller dans hobo.</p>
</blockquote>
<p>Oui, que ça soit dans hobo/rest_authentication.py c'est le bon endroit. Et cela grâce à un raise d'une APIException avec un <code>detail={err:1, err_desc:"user-not-found"}</code> et status_code=401, pour arriver ici dans le code de DRF :</p>
<pre>
def exception_handler(exc, context):
if isinstance(exc, exceptions.APIException):
headers = {}
if getattr(exc, 'auth_header', None):
headers['WWW-Authenticate'] = exc.auth_header
if getattr(exc, 'wait', None):
headers['Retry-After'] = '%d' % exc.wait
if isinstance(exc.detail, (list, dict)):
data = exc.detail
else:
data = {'detail': exc.detail}
set_rollback()
return Response(data, status=exc.status_code, headers=headers)
</per>
Et donc dans combo, petit patch quand même : quand on appelle une API DRF on saura qu'un 401 avec un payload err=1, on sait que ça peut arriver (soucis de provisionning sur un nouveau compte) : loguer juste en info, ou au pire warning.
J'ai bon ?</pre> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2152792020-02-13T07:03:16ZBenjamin Dauvergne
<ul></ul><p>Thomas Noël a écrit :</p>
<blockquote>
<p>Et donc dans combo, petit patch quand même : quand on appelle une API DRF on saura qu'un 401 avec un payload err=1, on sait que ça peut arriver (soucis de provisionning sur un nouveau compte) : loguer juste en info, ou au pire warning.</p>
<p>J'ai bon ?</p>
</blockquote>
<p>Yep c'est ça l'idée.</p> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2157412020-02-14T15:57:17ZBenjamin Dauvergne
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/39911">Development #39911</a>: rest_authentication : lever des exceptions spécifiques en cas d'échec</i> ajouté</li></ul> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2219852020-03-22T11:09:30ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/42516">0001-fargo-hide-user-not-found-API-errors-and-only-that-3.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/42516/0001-fargo-hide-user-not-found-API-errors-and-only-that-3.patch">0001-fargo-hide-user-not-found-API-errors-and-only-that-3.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>Information nécessaire</i> à <i>Solution proposée</i></li></ul> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2222002020-03-23T14:30:05ZThomas Noël
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>Solution validée</i></li></ul> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2223342020-03-24T06:57:19ZBenjamin Dauvergne
<ul><li><strong>Statut</strong> changé de <i>Solution validée</i> à <i>Résolu (à déployer)</i></li></ul><pre>commit 60add2525c032ec2e7608d9d43ec8bc0923b5ee7
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date: Sun Mar 22 12:07:14 2020 +0100
fargo: hide user-not-found API errors and only that (#35352)</pre> Combo - Development #35352: fargo, ne pas logger d'erreur de GET sur une 403https://dev.entrouvert.org/issues/35352?journal_id=2241442020-03-31T18:15:12ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Résolu (à déployer)</i> à <i>Solution déployée</i></li></ul>