Estoy implementando una API RESTful en Grails, y uso un esquema de autenticación personalizado que implica firmar el cuerpo de la solicitud (de manera similar al esquema de autenticación S3 de Amazon). Por lo tanto, para autenticar la solicitud, necesito acceder al contenido del cuerpo crudo POST o PUT para calcular y verificar la firma digital.Accediendo al cuerpo sin procesar de una solicitud PUT o POST
Estoy haciendo autenticación en un beforeInterceptor en el controlador. Así que quiero que algo como request.body esté accesible en el interceptor, y aún así poder usar request.JSON en la acción real. Me temo que si leo el cuerpo en el interceptor utilizando getInputStream o getReader (métodos proporcionados por ServletRequest), el cuerpo aparecerá vacío en la acción cuando intente acceder a él a través de request.JSON.
Estoy migrando de Django a Grails, y tuve exactamente el mismo problema en Django hace un año, pero se reparó rápidamente. Django proporciona un atributo request.raw_post_data que puede usar para este propósito.
Por último, para ser agradable y RESTful, me gustaría que esto funcione para las solicitudes POST y PUT.
Cualquier consejo o sugerencia sería muy apreciada. Si no existe, preferiría consejos sobre cómo implementar una solución elegante sobre ideas para hacks rápidos y sucios. =) En Django, edité algunos manejadores de solicitudes de middleware para agregar algunas propiedades a la solicitud. Soy muy nuevo en Groovy y Grails, así que no tengo idea de dónde vive ese código, pero no me importaría hacer lo mismo si fuera necesario.
algún motivo para migrar de Django para Grails? – Divick