Как настроить Grails так, чтобы он всегда показывал свою страницу ошибки в статусе 500 - PullRequest
5 голосов
/ 09 декабря 2010

В UrlMappings.groovy я установил "500"(controller:'error', action:'error'), чтобы использовать мой собственный контроллер ошибок (и представление).

Обычно он работает, однако, когда я пытался вмешаться в ввод запроса (отправив параметрразмером 1 МБ), я получил сгенерированную Tomcat страницу с ошибкой HTTP Status 500.

Сначала я подумал, что эта ошибка сгенерирована только Tomcat, так что Grails ничего не может с этим поделать, но исключение org.springframework.web.util.NestedServletException (вложенное исключение java.lang.StackOverflowError), и в трассировке стека имеется множество org.codehaus.groovy.grails упакованных классов.

Я думаю, что показывать это исключение, включая трассировку стека потенциальным злоумышленникам, опасно, поэтому как я могу настроить grailsвсегда показывать свою страницу с ошибкой?Или это можно настроить только в Tomcat?

Ответы [ 2 ]

3 голосов
/ 09 декабря 2010

Возможно, это ошибка Grails.Я нашел эту нить Nabble , которая направила меня к этой проблеме JIRA .Эта проблема была решена, но в комментариях Питер Ледбрук связал с другой проблемой JIRA , которая может или не может быть вашей проблемой.В комментариях предлагается обходной путь, который можно найти здесь .Саму ошибку планируется исправить в 1.4;Обходной путь исправления выше нацелен на 1,3

1 голос
/ 09 декабря 2010

Соглашаясь с Робом Грушкой, я наткнулся на большинство его ссылок.

Я тоже подозреваю, что плагин grails-error-pages-fix должен решить эту проблему - поскольку сервлету grailsWebRequest по умолчанию не назначен <dispatcher>ERROR</dispatcher> в web.xml .

Техника, используемая с этим плагином, в основном делает то же самое, что и техника, которую я предложил в предыдущем посте . (Тем не менее, мои собственные тесты, как видно из моих комментариев, пока не привели к последовательным результатам.)

Наконец, одна вещь, которая будет работать в любом случае, - это реализация пользовательского сервлета Filter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...