Home > front end >  Resttemplate Oauth2 Spring Userinfo cannot convert xml to java.util.map
Resttemplate Oauth2 Spring Userinfo cannot convert xml to java.util.map

Time:05-30

I've setup up an Oath2 resttemplate client.When it comes back from authenticating with the remote service,it tries to convert the Userinfo from XML to util.Map and dies with

 o.s.b.a.s.o.r.UserInfoTokenServices - Could not fetch user details: class org.springframework.web.client.UnknownContentTypeException, Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.Map] and content type [application/xml;charset=UTF-8]

The XML it receives is like :

  "<root><userinfo userid="Userxxx "   lastname="xxx" firstname="xxx" /></root>"

I think there are two options :

  1. Somehow turn off the automatic check Spring does with UserInfoTokenServices

2.add to resttemplate a converter with setMessageConverters

I don't know if the first is possible. As fas as the second goes I've made an XStream MapEntryConverter but Resttemplate wants a HttpMessageConverter.

And why does by default UserInfoTokenServices require a hashmap? Is there an alternative way ?

CodePudding user response:

Generally you don't have to create your own converters, at least for JSON/XML - Spring will configure them based on the libraries available on the classpath.

For the mentioned formats you usually need the Jackson library. In your case it's the com.fasterxml.jackson.dataformat:jackson-dataformat-xml dependency.

  • Related