此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【cs_kill_you】截止到2008-07-10 22:18:22的历史汇总数据(不包括此帖):
发帖的总数量:22 发帖的总分数:340 每贴平均分数:15
回帖的总数量:14 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:21 结贴的总分数:320
无满意结贴数:5 无满意结贴分:100
未结的帖子数:1 未结的总分数:20
结贴的百分比:95.45 % 结分的百分比:94.12 %
无满意结贴率:23.81 % 无满意结分率:31.25 %
值得尊敬
楼主【cs_kill_you】截止到2008-07-10 22:18:22的历史汇总数据(不包括此帖):
发帖的总数量:22 发帖的总分数:340 每贴平均分数:15
回帖的总数量:14 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:21 结贴的总分数:320
无满意结贴数:5 无满意结贴分:100
未结的帖子数:1 未结的总分数:20
结贴的百分比:95.45 % 结分的百分比:94.12 %
无满意结贴率:23.81 % 无满意结分率:31.25 %
值得尊敬
解决方案 »
- 急呀!救命。。
- (access数据库)ResultSet 转换为list 后,怎样输出里面的值啊
- 一个JSF标签的问题?
- struts spring配置启动问题,谁能解决?
- struts message累加的问题
- 表单提交问题...
- 我想用plsql给数据库里添加省市区的数据 ORA-00911: 无效字符?
- 有谁在用这样的开发平台吗?qq:17877232
- struts 的 logic:iterate 标签问题?请教各位 !
- 今天考试用JBuilder8遇到些问题?
- java怎么读取数据库里的所有表名?
- javax.naming.CommunicationException: Receive timed out
http://www-128.ibm.com/developerworks/cn/security/se-sso/index.html
2.耶鲁大学开源实现
http://www.ibm.com/developerworks/web/library/wa-singlesign/
3.利用Sun包的实现
http://www.ibm.com/developerworks/java/library/j-gss-sso/
4.老外一实现单点登录的教程
http://www.developertutorials.com/tutorials/java/single-sign-on/page1.html关于楼主的单用户在线处理方案:
我的实现方案是做一个全局的在线用户管理模块(起名叫OUMM - Online-User Management Module)
该模块作用是提供一个在线用户列表服务,其中"用户名+session id"为key,假定用户名全局唯一,value是“一个优先级+最后一次发送请求的时间”
当用户X第一次登录时,X信息被记录,优先级别为0
当另外一个X成功登录时,向OUMM中再添加一个X信息,设置优先级别为1(以后登录的用户优先级依次增加),同时提醒用户要采用的登录方案方案一:不登录,直接退出
更新OUMM中的用户信息,将当前X的信息删除方案二:继续登录,与之前的用户同时存在
直接进入系统,这时OUMM中用户信息就有两个,优先级别分别为0和1,后续登录者优先级2、3、4……方案三:继续登录,将之前的用户踢出系统
OUMM中之前已经登录的X用户优先级别设置为-1,并把自己的优先级别设置为之前X用户的优先级别0
如果在本次登录之前有N个登录用户,把他们的优先级别都设置为-1对于优先级别为-1的用户,当他们再次发请求时,告诉他们别人已经在别处登录,他已被强迫下线,可以让他们再次登录,同时删除OUMM中的用户信息如果这两个X用户反复登录,就跟QQ被盗时效果一样,反复登录,反复被强迫下线PS:
1.在用户关闭浏览器或退出系统时,使用AJAX发送请求到服务器端,删除当前用户的登录信息
2.OUMM的用户管理列表要做周期性的整理,将最后一次发送请求的时间与当前时间的差值,与服务器SESSION过期时间比较,删除那些已经超时的用户信息
用户信息包括:用户名,最后登录的sessionId,最后操作时间
保存的key有2个
application.setAttribute(username,User);
application.setAttribute(sessionId,User);新用户登录,检查用户名是否已经在application里面,如果在,则检查日期是否已经超过设置的超时时间。
如果成功,则设置User里面的最后sessionId为当前的。老用户,则检查sessionID对应的User里面的sessionId是否为当前,如果不等则强制退出。退出登录,则清理掉2个属性系统用一个线程,定期清理无用的username和sessionId的数据,避免垃圾数据占用内存。
if(exists(username)){
setLastSessionId();
setLastAccessDatetime();
}else{
createNewAccount();
}
}else if(isNormalOperate()){
if(isExpired()){
logout();
}else if(currentSessionId != User.lastSessionId){
logout();
}
}