【发布时间】:2012-06-15 06:50:39
【问题描述】:
我正在尝试使用基于插件 grails-spring-security-oauth2-provider 的 grails 配置广告 OAUTH2 提供程序,但已升级到 pring-Security-OAuth M6。
我能够使用 /oauth/authorize 端点注册客户端并获取授权码。
但是我在尝试获取访问令牌时遇到问题,似乎无法返回json。
我用 curl 调用访问令牌端点
curl -k -i -H "Accept: application/json" "https://graph.mysite.it/oauth/token?client_id=testApp&client_secret=testAppSecret&response_type=token&grant_typization_code&code=OJD7xf&redirect_uri=https%3A%2F%2Fgraph.mysiste.it%2Fxme"
服务器回复 HttpMediaTypeNotAcceptableException 找不到可接受的表示。
在谷歌上搜索我尝试添加 resources.xml mvc:annotation-driven to 让spring注册json jackson转换器,此时调用返回HTTP/1.1 406 Not Acceptable "该请求标识的资源只能生成根据请求"accept" headers不能接受的特性的响应"
进入 spring security oauth source 我到达了这个控制器TokenEndpoint.java 在这里调试我看到令牌已正确生成。 使用 groovy 控制台,我尝试手动收集 jackson 转换器广告:
import org.codehaus.jackson.map.ObjectMapper
import org.springframework.security.oauth2.common.OAuth2AccessToken
def mapper = new ObjectMapper()
def token = new OAuth2AccessToken('fdkshdlfhklsahdklfhksaldfkl')
mapper.writeValueAsString(token)
json 打印正确,所以我可以排除 jackson 配置中的问题。
spring mvc 控制器在 grails 中映射为
"/oauth/token"(uri:"/oauth/token.dispatch")
问题出在哪里?为什么grails不能返回json?
这是我的Dependecy report
【问题讨论】:
标签: spring grails spring-security oauth-2.0 jackson