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

QQ登录

只需一步,快速开始

查看: 3481|回复: 4

[结贴] bex5如何实现单点登录功能?

[复制链接]

152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
发表于 2018-2-2 09:19:00 | 显示全部楼层 |阅读模式
其它系统的用户要直接登录到bex5(不需要再输入用户和密码,只提供验证用户身份的接口),bex5是如何实现这种功能的?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2018-2-2 10:13:39 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
 楼主| 发表于 2018-2-10 01:47:55 | 显示全部楼层
实现单点登录,关键在于用下面的函数直接将账号登录到Biz服务器(不需要密码),并返回bsessionid:
        private String ntLogin(String username){
                String language = "zh_CN";
                Action action = new Action();
                action.setProcess("/SA/OPM/system/systemProcess");
                action.setActivity("mainActivity");
                action.setName("ntLoginAction");
                action.setParameter("name", username);
                action.setParameter("loginDate", new java.sql.Date(System.currentTimeMillis()));
                action.setParameter("ip", "127.0.0.1");
                action.setParameter("options", new HashMap<String, Object>());
                action.setParameter("lang", language);
               
                try {
                        ActionResult ar = ActionEngine.invokeActions(JustepConfig.getBusinessServer() + "/login2", null, action.asXML().getBytes("UTF-8"),
                                        null, ActionUtils.XML_CONTENT_TYPE, ActionUtils.XML_CONTENT_TYPE,
                                        null, language, "post", null);
                        if (ar.isSuccess()){
                                return ar.getBSessionID();
                        }else{
                                throw new RuntimeException(ar.getMessage());
                        }
                       
                } catch (Exception e) {
                        logger.error(e.getMessage()+"", e);
                        throw new RuntimeException(e.getMessage()+"", e);
                }
               
        }

如果是在多租户模式下,也能采用这种方式将账号直接登录到Biz服务器吗?如果能的话,client_id=xxxx参数要放在哪个地方呢?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2018-2-10 08:55:41 | 显示全部楼层
直接用  action.setParameter("lang", language);这样的方式设置就可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

152

主题

413

帖子

2182

积分

金牌会员

Rank: 6Rank: 6

积分
2182
QQ
 楼主| 发表于 2018-2-11 21:49:07 | 显示全部楼层
谢谢,请结帖。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 13:08 , Processed in 0.059486 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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