Я внедряю RESTful API в Grails и использую специальную схему аутентификации, которая включает подписание тела запроса (аналогично схеме аутентификации Amazon S3). Поэтому для аутентификации запроса мне нужно получить доступ к содержимому исходного POST или PUT для расчета и проверки цифровой подписи.
Я делаю аутентификацию в beforeInterceptor в контроллере. Поэтому я хочу что-то вроде request.body быть доступным в перехватчике и все еще иметь возможность использовать request.JSON в действительном действии. Я боюсь, если я прочитаю тело в перехватчике, используя getInputStream или getReader (методы, предоставленные ServletRequest), тело будет пусто в действии, когда я попытаюсь получить к нему доступ через request.JSON.
Я перехожу из Django в Grails, и у меня была такая же проблема в Django год назад, но она была быстро исправлена. Django предоставляет атрибут request.raw_post_data, который вы можете использовать для этой цели.
Наконец, чтобы быть хорошим и RESTful, я бы хотел, чтобы это работало для запросов POST и PUT.
Приветствуются любые советы или указатели. Если этого не существует, я бы предпочел, чтобы указатели на то, как реализовать элегантное решение по идеям для быстрых и грязных хаков. =) В Django я редактировал некоторые обработчики запросов промежуточного слоя, чтобы добавить некоторые свойства в запрос. Я очень новичок в Groovy и Grails, поэтому я понятия не имею, где живет этот код, но я бы не прочь сделать то же самое, если это необходимо.