起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17693|回复: 18

[处理中5] 流程问题

[复制链接]

480

主题

1283

帖子

4468

积分

论坛元老

Rank: 8Rank: 8

积分
4468
QQ
发表于 2015-8-16 11:43:27 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: MySQL 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 8 浏览器: Chrome
本帖最后由 davidhuang 于 2015-8-16 18:25 编辑

我发现了x5流程存在一个问题,

案例如下,
用户a 在ie新建一个流程实例 aa,填好内容,按保存,不关掉当前窗口, 不退出

用户a 在chrome打开之前那个保存的流程实例aa,不关窗口,不退出,

接着用户a在 ie里面按流转,流程实例aa流转成功
接着用户a在chrome里面修改实例aa的字段内容,按保存,保存成功,version值变为2, 流程实例已经流转到下一个环节,不应该能修改字段内容呀

究其原因,是因为x5容许一个用户从多个地方同时登录,有没有什么办法限制一个用户只能登录一次,如果第二次登录,就把前一次的session去掉

请协助解决



91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-8-17 09:25:39 | 显示全部楼层
可以加一个登录前事件,在这个事件中实现以下逻辑:
判断当前登录用户ID是否在“已登录用户”Map中,
如果不在,将当前用户及session对象添加到“已登录用户”Map中;
如果在,取出之前登录用户对应的session对象,设置为无效,并将当前登录用户和session添加到Map中;

注意:那个Map需要用线程安全的Map。

以上方案在非集群中可以使用,在集群中不行;
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4468

积分

论坛元老

Rank: 8Rank: 8

积分
4468
QQ
 楼主| 发表于 2015-8-17 09:38:49 | 显示全部楼层
我现在用的是非集群,但是很快要搬到云服务器上面了,云服务器应该是集群的, 没有其他办法了吗,这是系统的一个漏洞
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-8-17 10:05:40 | 显示全部楼层
davidhuang 发表于 2015-8-17 09:38
我现在用的是非集群,但是很快要搬到云服务器上面了,云服务器应该是集群的, 没有其他办法了吗,这是系统的 ...

云服务器上就用license-server做集群了吗?

一个用户只能登录一次这个平台是不做控制的,如果用户需要就需要自己控制

一个用户在同一个浏览器多个页签登录,平台会把上一个退出
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4468

积分

论坛元老

Rank: 8Rank: 8

积分
4468
QQ
 楼主| 发表于 2015-8-17 10:11:52 | 显示全部楼层
本帖最后由 davidhuang 于 2015-8-17 10:17 编辑

我们应该不会用License-sever, 而只会在虚拟机里装一个企业版x5,
我是说同一个用户,从ie, chrome, 多个浏览器登录,甚至从多个机器登录,这个你们目前是容许的,

也正是这个原因,用户测出了你们平台一个很大的bug,

具体什么情况,你可以和宋总交流,宋总已经知道是什么问题了,

可以加一个登录前事件,在这个事件中实现以下逻辑:
判断当前登录用户ID是否在“已登录用户”Map中,
如果不在,将当前用户及session对象添加到“已登录用户”Map中;
如果在,取出之前登录用户对应的session对象,设置为无效,并将当前登录用户和session添加到Map中;

注意:那个Map需要用线程安全的Map。

以上方案在非集群中可以使用,在集群中不行;

你能提供一个非集权的实现代码吗?



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-8-17 10:25:55 | 显示全部楼层
不会用License-sever应该就不是集群,目前没有实例代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4468

积分

论坛元老

Rank: 8Rank: 8

积分
4468
QQ
 楼主| 发表于 2015-8-17 10:38:01 | 显示全部楼层
你有没有发现这是x5一个很大的bug,就是流程流转了,用户还可以修改数据,用户如果要搞破坏,业务逻辑都会受到影响,而且我们还查不到原因
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-8-17 10:50:10 | 显示全部楼层
这个已经做为产品缺陷提供的内部平台组,(内部编号:2015081700002)
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

480

主题

1283

帖子

4468

积分

论坛元老

Rank: 8Rank: 8

积分
4468
QQ
 楼主| 发表于 2015-8-17 15:14:10 | 显示全部楼层
jishuang 发表于 2015-8-17 10:50
这个已经做为产品缺陷提供的内部平台组,(内部编号:2015081700002)

客户强烈要求一个用户同一时间只能从一个地方登录系统,所以希望你们提供解决方案
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-8-17 16:50:52 | 显示全部楼层
如果这个现在急需要,就需要自己实现,2楼已经提供的方案
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-5 10:24 , Processed in 0.070051 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表