OpenAM 收到 oAuth2 授权码,但不请求访问令牌无效的会话 ID

OpenAM receives oAuth2 auth code, but doesnt request access token Invalid Session Id

我已经实现了自己的 oAuth2 提供程序服务器(使用 Grails spring 安全 oAuth2 插件),现在正尝试将其连接到 OpenAM。

当我尝试登录时,它正确地重定向到我自己的登录表单,并且在成功的身份验证后重定向回 OpenAM,并显示以下 url:

http://sso.my-domain.com/openam/XUI/#login/&realm=%myRealm&code=dPPg1g&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l

但是,OpenAM 表示 "Unable to login"。授权代码在 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 的调用获得授权码和令牌,所以这应该不是问题所在。

我是不是漏掉了什么?感谢任何帮助

在深入了解 OpenAM 调试日志后,我发现它试图检索令牌,但得到的是 "Connection refused"。看来问题出在我服务器上的代理和路由上。

由于 openAM 和我的 oAuth 提供商 运行 在同一个 Tomcat 上,将令牌(和用户数据)URL 从 sso.my-domain.com 更改为 localhost:8080 解决了这个问题