更改 Json return Spring OAuth2 的格式

Changing Json return format of Spring OAuth2

在合并我们的 json 响应时,我尝试将 spring oauth2 json 响应更改为我们的格式。

来自

{
  "error": "invalid_token",
  "error_description": "Invalid access token: undefined"
}

{
  "status" : 401,
  "error_code": "invalid_token",
  "description": "Invalid access token: undefined"
}

我已经调试并发现了几个可能相关的点,但我无法将所有内容放在一起。

这些是我的方法

长话短说,我是 Spring 的新手,非常感谢有关如何修改回复的指导。

谢谢, 奥托

找到解决方案,注册 WebResponseExceptionTranslator:

    @Bean
public WebResponseExceptionTranslator webResponseExceptionTranslator() {
    return new DefaultWebResponseExceptionTranslator() {
        @Override
        public ResponseEntity<OAuth2Exception> translate(Exception e) throws Exception {
            ResponseEntity<OAuth2Exception> responseEntity = super.translate(e);
            OAuth2Exception body = responseEntity.getBody();
            HttpHeaders headers = new HttpHeaders();
            headers.setAll(responseEntity.getHeaders().toSingleValueMap());

           // translate the exception

            return new ResponseEntity<>(body, headers, responseEntity.getStatusCode());
        }
    };
}