Je reçois des avis divergents sur la pratique de stocker de l'information dans l' Thread.current
de hachage (par exemple, la current_user, l'actuel sous-domaine, etc.). La technique a été proposée comme un moyen de simplifier le traitement ultérieur, à l'intérieur de la couche du modèle (requête d'établissement de la portée, de l'audit, etc.).
- http://m.onkey.org/thread-safety-for-your-rails
- http://rails-bestpractices.com/posts/47-fetch-current-user-in-models
- Pourquoi mon fil variables intermittent dans les Rails?
- Alternative à l'utilisation de Thread.actuelle de l'API de wrapper pour les Rails
- Sont Fil.[] les valeurs et le niveau de la classe attributs de sécurité à utiliser dans les rails?
Beaucoup considèrent que la pratique inacceptable parce qu'il rompt le modèle MVC. D'autres expriment des préoccupations au sujet de la fiabilité/sécurité de l'approche, et mes 2 partie de la question porte sur ce dernier aspect.
Est l'
Thread.current
de hachage garanties disponibles et privé à une seule et unique réponse, tout au long de son cycle?Je comprends qu'à un fil, à la fin d'une réponse, peut-être remis à d'autres demandes entrantes, ce qui les fuites de toutes les informations stockées dans
Thread.current
. Serait de compensation de ces informations avant la fin de la réponse (par exemple en exécutantThread.current[:user] = nil
à partir d'un contrôleurafter_filter
) suffit pour empêcher la violation de la sécurité?
Merci! Giuseppe