项目中业务系统和一个cms系统要做session共享,此为个人工作中的总结,算不算SSO我也不知道,我要的是实现功能。
项目A和项目B是tomcat下两个不同的项目,项目A是业务系统,项目B是cms系统,要实现的目标是 A登录进来 跳转到B B获取到A的session信息
因为A登录后在A的struts.xml不能直接跳转到B的页面,所以在A里面加了jsp页面(在此页面中实现跳转到B页面),跳转到此页面。
在此jsp页里获取到session的信息后通过c:redirect 加参数进行传参,把session里需要的信息分别传过去:
在B的页面里通过获取url的路径和参数得到传过来的url字符串,这里要注意,前面传过来的参数如果是中文 获取到的参数会是类似%e9%9b%86%e5%9b%a2%e6%9c%ac%e9%83%a8的乱码,
必须通过decodeURI()方法转码。
现在跳转到B的页面了,下面实现获取A的session信息:
首先在tomcat server.xml 标签下 配置:
在A的登录action里:
HttpSession session2 = request.getSession();
session2.setAttribute("sessionDto",A的session信息);
ServletContext ContextA =session2.getServletContext();
ContextA.setAttribute("session", session2);
在B的web-inf/web.xml里写一个filter过滤器:
sessionFilt