Resttemplate Oauth2 Spring 用户信息无法将 xml 转换为 java.util.map

Resttemplate Oauth2 Spring Userinfo cannot convert xml to java.util.map

我已经设置了一个 Oath2 resttemplate client.When 它从远程服务身份验证返回,它尝试将用户信息从 XML 转换为 util.Map 并死于

 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]

它收到的 XML 就像:

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

我认为有两种选择:

  1. 以某种方式关闭自动检查 Spring 对 UserInfoTokenServices

2.add 使用 setMessageConverters

重新模板化转换器

不知道第一种可不可以。 就第二步而言,我已经制作了一个 XStream MapEntryConverter,但 Resttemplate 想要一个 HttpMessageConverter。

为什么默认情况下 UserInfoTokenServices 需要哈希图?有其他方法吗?

通常您不必创建自己的转换器,至少 JSON/XML - Spring 将根据类路径上可用的库配置它们。

对于上述格式,您通常需要 Jackson 库。在您的情况下,它是 com.fasterxml.jackson.dataformat:jackson-dataformat-xml 依赖项。