昨晚梁总向我问,在当前OA基础上,需要添加单点登录项目,实现新的单点登录。后问清楚,才知道,当前的单点登录项目组的项目完成后,却没想到与旧的有权限控制的系统的整合问题。花费了2周都停留在此问题上。——这问题,在项目需求阶段早该考虑进去的了,不给力啊……。
经过进一步交流,知道了她是想保留当前OA的权限控制,保留登录界面。脱离新的单点登录项目的情况下依旧不影响OA的正常运行。
他们当前开会讨论的方案是:同时使用两套权限filter,但当实际开发中却发觉这样会出现死循环,相互验证。
我撇开了他们的方案,在纸上绘制了一下登录验证流程,之后提出两个方案:
1、他们的这种双权限过滤器机制,但这个方式明显容易是错(他们当前实现中遇到的死循环就是其中一个问题)。而且这样改动大,性能也降低了。
2、把单点登录的验证拦截放于OA的登录框Servlet,在登录显示前调用的控制层中做文章。在里面添加单点登录的判断逻辑,如果有单点登录信息则可直接抓取账号进行登录(也可显示类似于QQ一键登录那样的按钮),否则显示展示层的登陆框。目前而言,这样应该是改动是最小,系统间耦合度也是最小的方案。
—–
另一个问题,他们想在单点登录后自动跳转到之前输入的需要访问的URL路径。这个,其实java中有实现方案:
JSP获取上一个访问页面URL的方法:通过request.getHeader(“Referer”)就可以获得上一访问页面的url地址,包含参数。
近期评论