社区
Java EE
帖子详情
session同步问题,有经验的朋友帮忙解答下.TS!!
lxwyyyz
2011-01-14 09:56:06
要求:一个tomcat下面跑两个项目,如何能够登录一个项目的后,跳转到另外一个项目时,能够同样显示用户已登录。
问题衍化:如何让一个tomcat下面的两个session进行同步控制,也就是说如何让两个应用程序有同一个session。
...全文
307
28
打赏
收藏
session同步问题,有经验的朋友帮忙解答下.TS!!
要求:一个tomcat下面跑两个项目,如何能够登录一个项目的后,跳转到另外一个项目时,能够同样显示用户已登录。 问题衍化:如何让一个tomcat下面的两个session进行同步控制,也就是说如何让两个应用程序有同一个session。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lxwyyyz
2011-01-16
打赏
举报
回复
[Quote=引用 26 楼 hamiltion 的回复:]
其实你可以用web service试试,你的问题目前是解决了,但是如果两个项目不在一个tomcat上运行,那岂不是还要改啊,web service可以是实现你的需求,而且可以跨服务器,建议你试试!
[/Quote]
两个项目在不在同一个tomcat上面的话,也可以选择集群,webservice确实是一个比较好的解决方案,但是有一点得不得不说的是,两个项目中一个项目的源码不可以修改,所以这个就很纠结~
juaby
2011-01-16
打赏
举报
回复
单点登录吧
耶鲁大学的那个cas不错
Hamiltion
2011-01-15
打赏
举报
回复
其实你可以用web service试试,你的问题目前是解决了,但是如果两个项目不在一个tomcat上运行,那岂不是还要改啊,web service可以是实现你的需求,而且可以跨服务器,建议你试试!
lxwyyyz
2011-01-14
打赏
举报
回复
[Quote=引用 23 楼 myzee 的回复:]
tomcat集群就可以做到了
但是访问量大的时候,效率比较低……
[/Quote]
给一个效率比较低的理由?
lxwyyyz
2011-01-14
打赏
举报
回复
蛋疼啊,搜了半天又配置了下,也不行~继续work~
zn85600301
2011-01-14
打赏
举报
回复
单点登录 就可以 不需要共享session
alpha_423
2011-01-14
打赏
举报
回复
单点登录挖。搜“单点登录”
myzee
2011-01-14
打赏
举报
回复
tomcat集群就可以做到了
但是访问量大的时候,效率比较低……
kala197
2011-01-14
打赏
举报
回复
SSL 单点登录 或者 在客户端写cookie 然后再读取
lxwyyyz
2011-01-14
打赏
举报
回复
为了方便大家学习,3天后再结贴,参与者有分
lxwyyyz
2011-01-14
打赏
举报
回复
问题已经解决了,我把最笨的解决方法写下来,给大家看。
(1)首先把tomcat/conf/server.xml文件的HOST标签中添加以下两行文本,暂定需要共享session的项目为test1、test2。
<Context path="/test1" reloadable="true" crossContext="true"></Context>
<Context path="/test2" reloadable="true" crossContext="true"></Context>
(2)在test1项目中添加以下代码
ServletContext ContextA =session.getServletContext();
ContextA.setAttribute("session", session);
(3)从test2项目中取出来另外一个项目的session
ServletContext Context = session.getServletContext();
ServletContext Context1= Context.getContext("/test1");
HttpSession session1 =(HttpSession)Context1.getAttribute("session");
项目test2取出来的session实际上是test1的session
原理:实际上是通过应用服务器唯一的ServletContext对象实现的共享。
备注:真正的单点登录问题很深,有空再研究
henry_fuzr
2011-01-14
打赏
举报
回复
其中一个项目 作为登陆入口 带入returnUrl ,然后利用cookie来共享登陆信息
想喝咖啡的貓
2011-01-14
打赏
举报
回复
我印象中session是不能跨域的,两个不同域名的项目怎么能共享session?
工布之者
2011-01-14
打赏
举报
回复
共享session那么做?
lxwyyyz
2011-01-14
打赏
举报
回复
[Quote=引用 14 楼 zuxianghuang 的回复:]
不关session的事
[/Quote]
求详解??可能配置SSO不管SESSION的事情,但是我最终想要的结果只是session共享
zuxianghuang
2011-01-14
打赏
举报
回复
不关session的事
lxwyyyz
2011-01-14
打赏
举报
回复
[Quote=引用 11 楼 zn85600301 的回复:]
引用 5 楼 lxwyyyz 的回复:
有经验做过的朋友帮帮忙~我的这个需求不需要跨服务器,网上的一些配置貌似太复杂了~
给你出个馊主意
你用memcached 把登录过的用户信息 存起来并存个时间戳防止用户异常退出
当用户退出的时候 你从memcached 缓存服务器中删掉用户的信息就行了
memcached 用起来就像是一个长连接的MAP集合 你可以试试
[/Quote]
晚上按你的解决方法试试~问题小纠结,弄懂了之后先满足需求,以后再有空深入
lxwyyyz
2011-01-14
打赏
举报
回复
[Quote=引用 10 楼 qingyuan18 的回复:]
网上搜“SSO” 单点登录,很多解决方案,有简单的有复杂的,根据你的项目实际选取
通常的做法是一台服务器做为登录的统一终端,用户信息都存放在这台服务器,其他用户的登录验证请求都由该终端代理,多个应用之间session复制保证用户信息的一致性
存放用户信息有多种方式,放数据库或者现在比较流行的LDAP都可以,关键是对外统一的验证和鉴权接口
[/Quote]
没有那么复杂,网上的是有很多方法,但是比较复杂,我的只是在一个tomcat中跨项目共享session,网上的一些介绍比较简单的方法配置了之后也没成功
zn85600301
2011-01-14
打赏
举报
回复
[Quote=引用 5 楼 lxwyyyz 的回复:]
有经验做过的朋友帮帮忙~我的这个需求不需要跨服务器,网上的一些配置貌似太复杂了~
[/Quote]
给你出个馊主意
你用memcached 把登录过的用户信息 存起来并存个时间戳防止用户异常退出
当用户退出的时候 你从memcached 缓存服务器中删掉用户的信息就行了
memcached 用起来就像是一个长连接的MAP集合 你可以试试
qingyuan18
2011-01-14
打赏
举报
回复
网上搜“SSO” 单点登录,很多解决方案,有简单的有复杂的,根据你的项目实际选取
通常的做法是一台服务器做为登录的统一终端,用户信息都存放在这台服务器,其他用户的登录验证请求都由该终端代理,多个应用之间session复制保证用户信息的一致性
存放用户信息有多种方式,放数据库或者现在比较流行的LDAP都可以,关键是对外统一的验证和鉴权接口
加载更多回复(4)
微服务架构下的分布式
Session
管理
而时下热门的微服务架构又会为
Session
管理带来哪些改变与影响,我们在做微服务架构下的
Session
管理时又该考虑哪些
问题
。在此我们将会从改变与影响出发,一起探讨如何做好微服务架构下的
Session
管理。
【精】JAVA基础进阶知识汇总-HELLO XF
【精】各大厂
问题
汇总 创建时间: 2022/6/26 14:34 更新时间: 2023/3/21 19:27 作者: HelloXF 标签: 知识库, 重要文件 Java 基础 JAVA SE $关键字 Java 语言目前定义了 51 个关键字,这些关键字不...
asp经典例子
主 题: ASP常见
问题
及
解答
征集中,请大家积极参与~~~~~~~~ 作 者: awaysrain (绝对零度)(新的一年,新的开始) 等 级: 信 誉 值: 155 所属论坛: Web 开发 ASP
问题
点数: 200 回复次数: 160 发表...
编程资料 -C# 多线程
编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个...
问题
的提出 所谓单个写入程序/多个阅读程序的线程
同步
问
一些常用的资料_硬件/系统/等
BIOS自检与开机故障相关
问题
5. 计算机几个常见指标的意义6. 显卡GPU参数7. 显示卡常见故障全面解决8. 集成声卡常见故障及解决9. 显示器经典故障以及处理办法10. AMI主板代码大全(BIOS-ID)12. AWARD主板...
Java EE
67,515
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章