[英]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.