2016-09-20 3 views
3

при консолидации наших ответов json, я попытался изменить ответ весны oauth2 json на наш формат.Изменение формата возврата Json Spring OAuth2

От

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

Для

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

Я отлажена и нашел несколько моментов, которые, вероятно, уместно, но у меня неприятности приносят все вместе.

Это были мои подходы

  • Ответ написано здесь OAuth2ExceptionJackson2Serializer, но я не знаю, как обмен, что сериалайзер в весенний
  • Я нашел . Но, по моему мнению, это не позволяет установить там json body
  • Тело json написано DefaultOAuth2ExceptionRenderer, но я не мог этого установить. Я только нашел, как установить ExceptionTranslator, установив его в AuthorizationServerEndpointsConfigurer. Но это не позволяет установить рендер.
  • В документации говорится о настройке HttpMessageConverter, я не понял, как это сделать.

Короче говоря, я новичок в Spring, и я действительно был бы признателен за некоторые рекомендации относительно того, как изменить ответ.

Спасибо, Отто

+0

У меня такая же проблема на этом. Вы найдете решение? –

+0

Вы нашли решение? У меня были проблемы с этим. – JacobChan

ответ

1

Найдено решение, зарегистрировать 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()); 
     } 
    }; 
} 
+0

Он не включался, когда сервер oauth возвращал статус invalid_token – JacobChan

Смежные вопросы