SSO中,平台 redirect和第三方应用HttpClient 造成的Session失效,各位老大支招

用jfinal实现了一个简单的单点登陆平台 platform,测试用的第三方应用webApp也是基于jfinal开发, 全部都运行在eclipse的jettyServer中。原理是:

platform 页面上有各app模块,点击后发送appId到platform 中的SsoController/openApp, 在此中通过appId获取第三方的app/ssoUrl, 并生成标识token. 然后redirect(app/ssoUrl?token=...)  ,  app/ssoUrl 中接收到token后, 用HttpClient.post 回访platform中的 SsoController/queryLogin.  Login信息 用render 返回给 app, app接手后设置为登陆状态, 并再次 redirect 到具体的app/redirectUrl中。

现在的问题是:能成功登陆到app/redirectUrl 页面, 但platform 页面再次点击,就显示session无效。
测试发现,  platform 中redirect 到app,并不会造成session丢失, app中用HttpClient回访platform 获取登陆信息也没有丢失,  在app中再redirect就丢失

有点复杂,不知道能不能看明白

评论区

JFinal

2019-05-08 11:13

session 依赖于 cookie, app redirect 时很可能是没带上 cookie 值

neuwq

2019-05-08 11:27

老大,您回复太快了。 app redirect时,已经完全是在第三方应用里了,为什么会影响platform的session呢。 测试用的 360安全浏览器, open app时打开的是新标签页

热门反馈

扫码入社