Wdrażam RESTful API w Grails i używam niestandardowego schematu uwierzytelniania, który obejmuje podpisanie treści żądania (w sposób podobny do schematu uwierzytelniania S3 Amazona). Dlatego, aby uwierzytelnić żądanie, muszę uzyskać dostęp do zawartości treści POST lub PUT treści surowej, aby obliczyć i zweryfikować podpis cyfrowy.Uzyskiwanie dostępu do surowej treści żądania PUT lub POST
Wykonuję uwierzytelnianie w przedInterceptorze w kontrolerze. Tak więc chcę, aby coś takiego jak request.body było dostępne w przechwytywaczu, i nadal można używać request.JSON w rzeczywistej akcji. Obawiam się, że jeśli odczytam ciało w przechwytywaczu za pomocą metody getInputStream lub getReader (metod dostarczonych przez ServletRequest), ciało pojawi się puste w akcji, gdy spróbuję uzyskać do niego dostęp za pomocą request.JSON.
Przeprowadzam się z Django do Grails, a ja miałem dokładnie ten sam numer w Django rok temu, ale został szybko załatany. Django dostarcza atrybut request.raw_post_data, którego możesz użyć do tego celu.
Wreszcie, aby być miłym i RESTful, chciałbym, żeby to działało dla żądań POST i PUT.
Każda rada lub wskazówki byłyby mile widziane. Jeśli nie istnieje, wolałbym wskazówki, jak wdrożyć eleganckie rozwiązanie zamiast pomysłów na szybkie i brudne włamania. =) W Django edytowałem niektóre moduły obsługi żądań oprogramowania pośredniego, aby dodać niektóre właściwości do żądania. Jestem nowy dla Groovy i Grails, więc nie mam pojęcia, gdzie ten kod się znajduje, ale nie miałbym nic przeciwko temu, jeśli to konieczne.
Wszelkie powodem migracji z Django do Grails? – Divick