2017-01-13 27 views
0

Grails: 3.1.6 Весна ядро ​​безопасности: 3.1.1 Java: 1,8Как я могу войти, когда springsecurity.debg.useFilter = ложные

У меня есть форма пользовательского входа в систему, и контроллер пользовательского Логин. форме Войти указывает на индексного метода контроллера логина, который затем передает в filterProcessUrl: forward uri: "${request.contextPath}${getConf().apf.filterProcessesUrl}", params: params

Я могу войти, когда я установил grails.plugin.springsecurity.debug.useFilter = true

Когда я установил grails.plugin.springsecurity.debug.useFilter = false в моем application.groovy, I» m отправляется на мою страницу 404, когда я пытаюсь войти в систему. Это похоже на apf.filterProcessesUrl, '/ login/authenticate', больше не признается действительным URL. Я вижу в журналах, что он никогда не запускает ни один из фильтров filterProcessesUrl, но перескакивает напрямую с «login/index» на «/ error» и не запускает «AuthenticationFailureBadCredentialsEvent».

Почему это работает, только когда у меня есть debug.useFilter = true?

ответ

0

Выключает пересылку фильтра FilterProcessUrl. Когда я остановил пересылку, я смог войти в систему. Цепь фильтра смотрела на request.requestURI, пересылка которой не изменилась.

Переадресованный запрос работал, когда я использовал фильтр отладки, потому что фильтр отладки обертывает исходный запрос, который, как я предполагаю, изменил request.requestURI, и затем его подхватит цепочка фильтров.