用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