Sigo recibiendo opiniones contradictorias sobre la práctica de almacenar información en el Thread.current
hash (por ejemplo, el actual_usuario, el subdominio actual, etc.). La técnica se ha propuesto como una forma de simplificar el procesamiento posterior dentro de la capa del modelo (alcance de consultas, auditoría, etc.).
- ¿Por qué mis variables de hilo son intermitentes en Rails?
- Alternativa al uso de Thread.current en API wrapper para Rails
- ¿Son seguros los valores Thread.current [] y los atributos de nivel de clase para usar en rieles?
Muchos consideran que la práctica es inaceptable porque rompe el patrón MVC. Otros expresan preocupaciones sobre la confiabilidad / seguridad del enfoque, y mi pregunta de dos partes se enfoca en el último aspecto.
¿Se
Thread.current
garantiza que el hash esté disponible y sea privado para una sola respuesta, durante todo su ciclo?Entiendo que un hilo, al final de una respuesta, bien puede ser entregado a otras solicitudes entrantes, filtrando así cualquier información almacenada en
Thread.current
. ¿Sería suficiente borrar dicha información antes del final de la respuesta (por ejemplo, ejecutandoThread.current[:user] = nil
desde un controladorafter_filter
) para prevenir tal violación de seguridad?
¡Gracias! Giuseppe