Как мне обработать пользовательское исключение аутентификации в плагине 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/

Другие вопросы по тегам