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

QQ登录

只需一步,快速开始

查看: 12358|回复: 18

[结贴] 第三方门户集成X5应用

  [复制链接]

7

主题

63

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
发表于 2014-11-3 11:44:06 | 显示全部楼层 |阅读模式
版本: X5.2.1.2000 小版本号: 1
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: IE8
通过第三方门户平台集成x5系统,实现单点登录应用。当前采用的是经典门户,在论坛里面看了很多帖子,可以通过directLogin.w实现单点登陆,但是调用方法限制比较死,需要传递用户名和秘密。现第三方门户平台统一了单点登录集成方案,采取基于Http Header的认证方式进行集成,第三方门户平台,将用户ID信息设置在header中进行传输,通过servlet或者后台拦截读取ID,再在x5中验证用户ID是否存在即可,存在直接登录x5首页,不存在跳转到登录界面。
1.请问怎么修改directLogin.w页面来进行集成?可否提供一个解决思路?
var info = dataToObj(${info});
                        if(info && info.status){
                                window.location.href = window.location.href.replace(/directLogin.*\.w.*/,'index.w');
                        }else{
                                window.location.href = window.location.href.replace(/directLogin.*\.w.*/,'login.w');
                        }

2.info是怎么取值的,可以支持修改源代码吗?
3.研究了一下.j好像是可以实现的,但是不知道我们的x5版本是否支持?


在线急等,请帮忙支持一下,谢谢!

89

主题

1377

帖子

1837

积分

金牌会员

Rank: 6Rank: 6

积分
1837
QQ
发表于 2014-11-3 11:51:44 | 显示全部楼层
2. 通过el表达式吧.
回复 支持 反对

使用道具 举报

7

主题

63

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2014-11-3 11:54:54 | 显示全部楼层
cyteamo 发表于 2014-11-3 11:51
2. 通过el表达式吧.

谢谢,其实是想知道其后台是怎么封装info,因为我判断封装info的过程应该是验证用户、注册会话的过程,所以想知道源码在什么地方可以修改
回复 支持 反对

使用道具 举报

89

主题

1377

帖子

1837

积分

金牌会员

Rank: 6Rank: 6

积分
1837
QQ
发表于 2014-11-3 11:56:37 | 显示全部楼层
xuanywn 发表于 2014-11-3 11:54
谢谢,其实是想知道其后台是怎么封装info,因为我判断封装info的过程应该是验证用户、注册会话的过程,所 ...

额,没什么,你问的问题我没做过,还是等有这样类似经验的大神来解答 呵呵
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2014-11-3 14:25:27 | 显示全部楼层
1.可以先验证用户ID,在x5中的SA_OPPerson中是否存在,并且状态是可用的
  如果是就取出用户名和密码,用http://localhost:8080/x5/portal/directLogin.w?username=" + username + "&password=" + pw进行登录

如果没有直接用http://localhost:8080/x5/portal/login.w到登录页

2./UI/portal/dsrc/DirectLogin.java文件中

3.2000版本支持.J
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

7

主题

63

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2014-11-3 15:14:55 | 显示全部楼层
1.请问验证用户ID的代码在什么地方实现?
2.应该是要重新写一个类似于servlet或者jsp的页面才可以通过request获取header信息。你是要我写一个loginCheck.j文件,在loginCheck.j中取用户ID,然后从SA_OPPERSON中去用户ID和password,然后用http://localhost:8080/x5/portal/directLogin.w?username=" + username + "&password=" + pw进行登录吗?
回复 支持 反对

使用道具 举报

7

主题

63

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2014-11-3 15:24:00 | 显示全部楼层
public class DirectLogin implements WModel{
        public void execute(Map<String, Object> vars, HttpServletRequest request, HttpServletResponse response){

                //获取用户信息
                String info = Controller.process("system/User/login", (HttpServletRequest)request);
                vars.put("info", info);
        }
}
里面的 Controller.process("system/User/login", (HttpServletRequest)request)调用了哪里的代码?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2014-11-3 16:32:37 | 显示全部楼层
xuanywn 发表于 2014-11-3 15:14
1.请问验证用户ID的代码在什么地方实现?
2.应该是要重新写一个类似于servlet或者jsp的页面才可以通过reques ...

在登录之前的代码中啊,基本上就是2的实现
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2014-11-3 16:32:57 | 显示全部楼层
xuanywn 发表于 2014-11-3 15:24
public class DirectLogin implements WModel{
        public void execute(Map vars, HttpServletRequest reques ...

在portal-core.jar中
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

7

主题

63

帖子

153

积分

初级会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2014-11-3 16:42:35 | 显示全部楼层
jishuang 发表于 2014-11-3 16:32
在登录之前的代码中啊,基本上就是2的实现

登陆之前的代码在哪里修改啊,请指点一下,谢谢!!!!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 03:45 , Processed in 0.088602 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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