如何处理 grails spring-security-rest 插件中的自定义身份验证异常?

Posted

技术标签:

【中文标题】如何处理 grails spring-security-rest 插件中的自定义身份验证异常?【英文标题】:How do I handle a custom authentication exception in grails spring-security-rest plugin? 【发布时间】:2017-03-06 20:24:19 【问题描述】:

我正在使用带有 spring-security-rest 插件的 Grails。

如何确保记录所有用户身份验证错误?

我发现插件中引发的安全异常没有使用我当前的配置记录。我希望在 ERROR 级别记录任何用户身份验证错误。

我尝试为 '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/

【讨论】:

以上是关于如何处理 grails spring-security-rest 插件中的自定义身份验证异常?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 grails spring-security-rest 插件中的自定义身份验证异常?

如何处理“IllegalStateException:BeanFactory 未初始化或已关闭”?

如何在 Grails 中显示异常?

在 grails 中处理来自服务的错误

c# FileSystemWatcher如何处理多个文件?

如何处理 MaxUploadSizeExceededException