[英]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"
}
我已经调试并找到了几个可能相关的点,但我很难将所有内容整合在一起。
这些是我的方法
OAuth2ExceptionJackson2Serializer
,但我不知道如何在spring中交换序列化器 WebResponseExceptionTranslator
。 但根据我的理解,它不允许在那里设置一个json体 AuthorizationServerEndpointsConfigurer
设置它来找到如何设置ExceptionTranslator
。 但它不允许设置渲染器 HttpMessageConverter
,我没有弄清楚如何做到这一点。 长话短说,我是Spring的新手,我真的很感激如何修改repsonse的一些指导。
谢谢,奥托
找到解决方案,注册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());
}
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.