我有一个AuthorizationServer,它使用Spring Security的password grant_type。我正在使用这个移动的应用程序。当用户输入其用户名和密码进行登录时,如果他们是经过身份验证的用户,则应用调用令牌端点并生成令牌。这些都是由password grant_type本身处理的。对于不成功的登录,它将返回以下带有400 HTTP状态代码的一般错误。
{
"error": "invalid_grant",
"error_description": "Bad credentials"
}
对于我的场景,我需要自定义此错误消息。是否有办法更改此错误消息?
我试着问了一个重复的问题:Customize authentication failure response in Spring Security using AuthenticationFailureHandler,但它使用了表单Login,并且它不适用于我的实现。
3条答案
按热度按时间pgvzfuti1#
我好几天都找不到这个问题的答案。最后,我得到了一位同事的帮助。他让我遵循这个tutorial,它对我很有效。现在我可以将默认的spring framework响应转换为我的响应模板,如下所示。
但是,我们仍然不知道为什么authenticationFailure处理程序不工作。希望这能帮上忙。
krugob8w2#
Sabin的答案是可行的,但我需要使用BadCredentialsException抛出异常,
eiee3dmh3#
如果您只想更改响应中的消息文本,则只需将messages.properties文件添加到应用程序的类路径中,内容如下:
AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password
这将导致以下响应: