Как мне обработать пользовательское исключение аутентификации в плагине grails spring-security-rest?
Я использую Grails с плагином spring-security-rest.
Как сделать так, чтобы все ошибки аутентификации пользователя регистрировались?
Я обнаружил, что исключения безопасности, сгенерированные в плагине, не регистрируются с использованием моей текущей конфигурации. Я хочу, чтобы любая ошибка аутентификации пользователя регистрировалась на уровне ОШИБКИ.
Я попытался включить ведение журнала отладки для 'grails.plugin.springsecurity.rest', но это регистрирует слишком много информации.
Вместо этого я начал определять пружинный ApplicationListener для ошибок, которые я хотел поймать. Я обнаружил, что не все ошибки из плагина генерируют события. Например, исключение TokenNotFoundException не имеет сопоставления в DefaultAuthenticationEventPublisher.
Как добавить сопоставления в DefaultAuthenticationEventPublisher? Это лучший способ справиться с этим или есть другой, более простой способ?
1 ответ
Лучше поздно, чем никогда...
У меня похожая ситуация, и я регистрирую пару ApplicationListener, которые могут вам помочь.
Я использовал FailSecurityEventListener, который обрабатывает событие, которое вызывает ошибку. RestAuthenticationFailureHandler, BearerTokenAuthenticationFailureHandler и BearerTokenAccessDeniedHandler также могут вам помочь и увидеть все доступное, что вы можете увидеть в документе API: http://alvarosanchez.github.io/grails-spring-security-rest/latest/docs/gapi/