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

QQ登录

只需一步,快速开始

查看: 5692|回复: 14

[结贴] BX5平台如何实现从BX5到其他系统的单点登录

[复制链接]

29

主题

82

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
QQ
发表于 2017-8-29 09:18:38 | 显示全部楼层 |阅读模式
各位老师好:
  本人学习BX5仅有一周多,对BX5还不太熟悉,想请教如何实现从BX5到其他系统的单点登录。
初步的想法是,在BX5首页面点击某个链接(BX5系统的页面),该链接获取用户在系统中的登录名,及握手密码,并根据生成加密字串和时间戳,并提交到第三方系统,第三方系统接收参数名按照与BX5约定的握手密码和加密方式验证,验证通过则允许登录。
但是不知道如何在BX5中实现,请各位老师帮忙!

备注:我们之前的OA是用的jsp页面获取OA中用户信息,或映射表中用户在第三方系统的登录名,不知道BX5是否能使用jsp页面。

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35863
发表于 2017-8-29 09:22:30 | 显示全部楼层
x5中集成第三方是需要第三方提供接口的
x5的.w就跟标准的html中是一样的,在html页面中怎么调用的第三方接口,在x5中是同样的

在什么时候调用要看具体的需求
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

29

主题

82

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
QQ
 楼主| 发表于 2017-8-29 09:27:26 | 显示全部楼层
是在.w页面获取用户登录名,进行数据加密,生成链接后跳转吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35863
发表于 2017-8-29 09:30:26 | 显示全部楼层
应该是第三方中提供这些接口,进行用户校验,如果成功返回一个状态值,不成功返回一个状态值
.w中去调用这些接口,获取状态值然后去调用链接做跳转
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

29

主题

82

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
QQ
 楼主| 发表于 2017-8-29 09:37:58 | 显示全部楼层
第三方接口是现成的,现在是不知道如何实现自动获取用户登录帐号,并进行加密后自动提交数据到第三方系统。想实现的效果是,在BX5点击链接后自动跳转到第三方系统。
我们原来大概是这样实现的
  1. AppContext context=new AppContext();
  2. java.util.Date currentdate=new java.util.Date();
  3. String time=new SimpleDateFormat("yyyyMMddHH").format(currentdate); //
  4. String Username =context.currentUserLoginName().toString();

  5. if(null==Username || Username.isEmpty() || Username==""){
  6.        
  7. }else{

  8. String tmp =time+"CWOAXT"+Username;

  9. String cre=DigestUtils.md5Hex(tmp).toUpperCase();

  10. String sn=cre.substring(8,14);
  11. response.write(cre);
  12. response.write(sn);
  13. response.sendRedirect("http://218.198.180.115/ssologin/index?sn=" + sn + "&id=" + Username + "&time=" + time);
复制代码



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35863
发表于 2017-8-29 09:40:02 | 显示全部楼层
第三方的具体的打开方式是什么?在x5的页面中打开还是另外打开一个页签?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

29

主题

82

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
QQ
 楼主| 发表于 2017-8-29 10:13:31 | 显示全部楼层
另一个页签打开
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35863
发表于 2017-8-29 10:33:35 | 显示全部楼层
可以在BeX5的UI2下创建一个.j(就是servlet),可以用你是上面的代码
用户名如果是Bex5的SA_OPPerson中sName的值可以在js中用
this.getContext().getCurrentPersonName()获取,然后在调用.j的时候拼接到url上做参数传递,然后在.j中获取url中参数值

js中调用.j可以参考/UI2/demo/actions/process/invokeAction/mainActivity.js
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

29

主题

82

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
QQ
 楼主| 发表于 2017-8-30 10:22:59 | 显示全部楼层
不知道为什么,一直response: undefined
调用代码如下:
QQ截图20170830102011.png java代码如下:

  1. public static String  getUserName(String username){
  2.                 String result = "";
  3.                 result = result + ((username != null) ? "\n" + "param_string: " + username : "");
  4.        
  5.                 return result;
  6.                
  7.         }
复制代码




回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35863
发表于 2017-8-30 10:35:19 | 显示全部楼层
java中输出放回的值看看是什么?
debugger调试看看调用action的成功回调中data中都有什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-19 17:37 , Processed in 0.079028 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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