J'implémente une API RESTful dans Grails et utilise un schéma d'authentification personnalisé qui implique la signature du corps de la requête (de manière similaire au schéma d'authentification S3 d'Amazon). Par conséquent, pour authentifier la requête, j'ai besoin d'accéder au contenu du corps brut POST ou PUT pour calculer et vérifier la signature numérique.Accès au corps brut d'une requête PUT ou POST
Je fais l'authentification dans un beforeInterceptor dans le contrôleur. Je veux donc que quelque chose comme request.body soit accessible dans l'intercepteur, et que je puisse toujours utiliser request.JSON dans l'action actuelle. J'ai peur que si je lis le corps dans l'intercepteur en utilisant getInputStream ou getReader (méthodes fournies par ServletRequest), le corps apparaîtra vide dans l'action quand j'essayerai d'y accéder via request.JSON. Je migre de Django vers Grails, et j'ai eu exactement le même problème dans Django il y a un an, mais il a été rapidement corrigé. Django fournit un attribut request.raw_post_data que vous pouvez utiliser à cette fin. Enfin, pour être agréable et RESTful, je voudrais que cela fonctionne pour les demandes POST et PUT.
Tout conseil ou pointeur serait grandement apprécié. Si ce n'est pas le cas, je préfèrerais des conseils sur la façon de mettre en œuvre une solution élégante sur les idées de hacks rapides et sales. =) Dans Django, j'ai édité des gestionnaires de requêtes de middleware pour ajouter des propriétés à la requête. Je suis très nouveau dans Groovy and Grails, donc je n'ai aucune idée de l'endroit où ce code vit, mais ça ne me dérangerait pas de faire la même chose si nécessaire.
Quel est le motif de migration de Django à Grails? – Divick