论坛首页 Java企业应用论坛

[原创]S3O:一个简单的单点认证系统(一)

浏览 31184 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-01-16  
ppeter 写道
china2wto 写道
fins 写道
叶子 写道
跨域的  ms的passport算一个

其他还真没见到什么。

不过不清楚退出时候 这个是怎么通知其他的也退出的。

查看,是存了cookies的。


各个子应用在启动的时候 向 认证中心注册了自己的信息

当用户退出的时候 把退出的消息发送给认证中心

认证中心利用自己得到的子应用的信息,向所有子应用发出 某某某 退出的消息
(实际上是调用 子应用发布的 hessian service)
这样各个子应用就也都知道 某某某退出了

不知道说明白没
要是网络突然中断呢?用户退出的时候没有把退出的消息发送给认证中心呢?系统不是乱套了?

这种情况怎么处理?


利用一下session监听吧(服务器正常工作的情况下),在session被销毁的时候去做用户退出处理.
session监听是一个办法
还有一个思路是直接在缓存上做文章
例如在ehcache
0 请登录后投票
   发表时间:2007-02-02  
8 基于spring 和 hessian技术构建。缓存采用ehcache。
>>>>也许个人认为这是最大的败笔了
和框架绑定太紧对一个组件而言不是什么好事情;别用什么重复发明轮子的话;至少我认为这种框架的侵入性太多不好
0 请登录后投票
   发表时间:2007-02-02  
确实 和spring绑定可能不太好

但是我觉得使用 hessian 和ehcache还是可以的
后两者更接近 工具类 而且绝对够轻.

如果你对第3方组件有抵触,我可以把他们的源代码 和 s3o直接打到一个jar包里 呵呵

其实我最近除了工作之外 一直在忙着ecside相关的开发
这个东西好久没弄了  等ecside可以有一个比较稳定的版本后 我会来好好弄一下这个小东西的.

因为我始终坚信 基于http协议的sso始终还是有用武之地的.

0 请登录后投票
   发表时间:2007-02-05  
你这个s3o判断用户时,一方面在子应用中判断session,一方面还在全局缓存中判断!
那么如何对一个稍微大一些的应用同时在线几万个人,那么全局缓存中必须存放几万条记录,这好像对效率来说不太好哦
0 请登录后投票
   发表时间:2007-02-05  
那该怎么办呢?
不能只依赖session啊
我也在思考这个问题

我想如果全局缓存与seesion一定要放弃一个的话 我请愿放弃后者
0 请登录后投票
   发表时间:2007-02-05  
fins 写道
那该怎么办呢?
不能只依赖session啊
我也在思考这个问题

我想如果全局缓存与seesion一定要放弃一个的话 我请愿放弃后者
首先谢谢你的回复。
还有个问题,你在cookie中设置超时的策略是什么呢?
这个好像没有看到你有提到。究竟设置多少时间才算合适呢?
如果用户一直在子系统A中操作,等到“若干长的时间”后才转向去登陆子系统B这个时候发现cookie已经过时了。那么用户不是又要重新登陆一次。这与单点登陆的意思好像又不符合了
0 请登录后投票
   发表时间:2007-02-05  
hessian和ehcache, 与spring没多大关系吧?
关注学习中...
0 请登录后投票
   发表时间:2007-03-30  
看看这个http://xmlspy.iteye.com/admin/show/66745

能不能实现?
0 请登录后投票
   发表时间:2007-09-17  
楼主写的很不错的!只是有一些BUG可能还没有测试出来,建议再改进改进!给的例子运行时会出现一些打不开的界面URL,后面发现是认证服务器的URL中给不明不白地加了一个null在URL后,结果就错误了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics