java – Spring Oauth2 – 自定义异常处理程序
在Spring Security基于Oauth2的身份验证中,当客户端发送需要刷新的访问令牌时,DefaultTokenServices类会抛出InvalidTokenException(参见第235行): https://github.com/spring-projects/spring-security-oauth/blob/master/spring-security-oauth2/src/main/java/org/springframework/security/oauth2/provider/token/DefaultTokenServices.java 发生这种情况时的输出是这样的:
我想改变这个输出,但我迷路了.其他一些答案建议设置一个自定义的exceptionRenderer,但这也不起作用,我的自定义异常渲染器在这些情况下永远不会被调用. 还有一种称为异常翻译器的东西,但无论如何它们都没有被称为. 我的春季配置的一部分:
异常渲染器:
} 我还添加了一个自定义的异常映射器,它应该获得所有异常,但是因为我假设它的另一个servlet,在这种情况下这不起作用吗?
我可以捕获AuthenticationException的情况,但不能捕获任何InvalidTokenExceptions. 对此有何帮助? Spring实际上在哪里捕获此InvalidTokenException以及如何设置它以便我可以提供自定义输出? 最佳答案
InvalidTokenException扩展ClientAuthenticationException.因此,您可以通过扩展ClientAuthenticationException并抛出此而不是InvalidTokenException来创建自己的异常
喜欢
在InvalidTokenException引发的错误中
invalid_token由InvalidTokenException和无效访问令牌的getOAuth2ErrorCode()方法返回:a0cb5ab9-7281-46bd-a9a2-796a04a906c9是抛出异常时给出的消息. 如果你扔了
错误将显示为
my_custom_exception来自CustomException的getOAuth2ErrorCode(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |