2016-03-08 4 views
1

Я использую следующие библиотеки:Как получить токен oauth с помощью GsonHttpMessageConverter?

  • весна-безопасности oauth2-2.0.9
  • весна-4.2.1
  • Gson - 2.2.4

и настроен GsonHttpMessageConverter в applicationContext.xml:

<mvc:annotation-driven> 
    <mvc:message-converters> 
      <bean class="org.springframework.http.converter.json.GsonHttpMessageConverter"> 
      <property name="gson" ref="gson"/> 
      <property name="supportedMediaTypes" value="application/json" /> 
      <property name="prefixJson" value="false"/> 
    </bean> 
    </mvc:message-converters> 
</mvc:annotation-driven> 

Добавлено:

<bean id="gsonFactoryBean" class="org.springframework.http.converter.json.GsonFactoryBean"> 
<property name="dateFormatPattern" value="yyyy'-'MM'-'dd"/> 
<property name="disableHtmlEscaping" value="true"/> 
<property name="prettyPrinting" value="true"/> 
    <!-- <property name="gson" ref="gson"/>--> 
     </bean> 

<bean id="gsonBuilder" class="com.google.gson.GsonBuilder"> 
    <property name="dateFormat" value="yyyy'-'MM'-'dd" /> 

</bean> 

По умолчанию весна-OAuth2 использует ДЖЕКСОНА-конвертер для сериализации/десериализации JSON. С включением библиотек Jackson, я не могу получить токен oauth из весеннего сервиса TokenEndPoint. Когда я комментирую тег message-converters, я могу получить токен oauth. Пожалуйста, дайте мне знать, как я могу использовать GsonHttpMessageConverter, чтобы получить токен oauth, или есть другой способ получить токен oauth.

При отладке кода GsonHttpMessageConverter он выдает HttpMessageNotWritableException, пожалуйста, помогите. Кажется, что OAuth2AccessToken.java имеет атрибут истечения срока действия, который является java.util.Date, может ли это быть проблемой с сконфигурированным конвертером. Этот конвертер нам нужен для POST-ing json дат в этом формате. пожалуйста, помогите

Заранее спасибо.

+0

визит здесь: http://www.programcreek.com/java-api-examples/index.php?api=org.springframework.web.client.RestTemplate –

+0

более подробно смотрите это: HTTP : //www.programcreek.com/java-api-examples/index.php source_dir = компоновать-ИДМ-мастер/SRC/главная/Java/де/Пассау/уни/сек/сочинить/идентификатор/ядро ​​/ сервис/безопасность /uaa/UAAClient.java –

+0

Я думаю, проблема связана с GsonHttpMessageConverter, неспособным преобразовать OAuth2AccessToken в json, так как в нем содержится атрибут истечения, формат которого соответствует указанному формату для конвертера. – chiku

ответ

1

Объект запроса Http содержит поле RECURSIVE. Преобразователи Gson при настройке весной AUTOMATICALLY CONVERTS HTTP-запрос с объектами поля RECURSIVE в свои объекты db, но когда он выключен, он выдает исключение «Неподдерживаемый тип носителя». OAuth2Token использует сериализатор/десериализатор Джексона, поэтому при настройке с помощью конвертора Gson Spring выбрасывает HttpMessageNotWritableException.

Благодаря

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