【发布时间】:2015-12-17 19:17:48
【问题描述】:
我已经实现了自己的 oAuth2 提供程序服务器(使用 Grails spring security oAuth2 插件),现在正尝试将其连接到 OpenAM。
当我尝试登录时,它会正确重定向到我自己的登录表单,并且在成功完成身份验证后会使用以下 url 重定向回 OpenAM:
http://sso.my-domain.com/openam/XUI/#login/&realm=%myRealm&code=dPPg1g&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l
但是,OpenAM 显示“无法登录”。身份验证代码在 URL 中,因此它应该能够请求访问令牌,所以我去进行了一些调试,发现它甚至没有尝试检索令牌;相关日志如下:
来自 localhost_access_log:
[15/Dec/2015:11:29:17 +0100] "GET /MyOAuthProvider/oauth/authorize?client_id=openAm&scope=read&redirect_uri=http%3A%2F%2Fsso.my-domain.com%3A80%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l HTTP/1.1" 200 901
[15/Dec/2015:11:29:18 +0100] "POST /MyOAuthProvider/oauth/authorize?client_id=openAm&scope=read&redirect_uri=http%3A%2F%2Fsso.my-domain.com%3A80%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l HTTP/1.1" 302 -
如您所见,没有调用 /MyOAuthProvider/oauth/token,这是令牌访问点。
来自 /usr/share/tomcat7/openam/openam/debug/debug.log:http://pastebin.com/qivhR9JF(使用 PasteBin,因为它有点太长了)
在本地进行测试时,我能够通过 Postman 的调用获得身份验证代码和令牌,所以这不应该是问题。
我在这里遗漏了什么吗?任何帮助表示赞赏
【问题讨论】:
标签: grails oauth-2.0 spring-security-oauth2 openam