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

QQ登录

只需一步,快速开始

楼主: winnyboy

[结贴] BeX5.3.7版本集成CAS单点登录问题

[复制链接]

6

主题

25

帖子

37

积分

新手上路

Rank: 1

积分
37
QQ
 楼主| 发表于 2017-9-21 08:31:01 | 显示全部楼层
有没有解决办法啊??
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-9-21 08:38:56 | 显示全部楼层
  <init-param>
             <param-name>/UI2/portal/pc3/login/login.w</param-name>
             <param-value>/UI2/portal/pc3/login/login.w</param-value>
        </init-param>去掉

然后看filter中最后拼的带bsessionid的url是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

6

主题

25

帖子

37

积分

新手上路

Rank: 1

积分
37
QQ
 楼主| 发表于 2017-9-21 08:49:48 | 显示全部楼层
本帖最后由 winnyboy 于 2017-9-21 08:50 编辑
jishuang 发表于 2017-9-21 08:38
/UI2/portal/pc3/login/login.w
             /UI2/portal/pc3/login/login.w
        去 ...

去掉了, 还是不行。

URL是这样的,device=pc是用代码把原来的QueryString拼上去的
  1. http://ldap.josiny.com:8080/x5/UI2/v_/portal/pc3/index.w?bsessionid=FE43297B4CE9F63ACCC3EC911E320FED&_login=true&device=pc
复制代码

  1. /x5/UI2/portal/pc3/index.w?bsessionid=FE43297B4CE9F63ACCC3EC911E320FED&_login=true&device=pc
复制代码
回复 支持 反对

使用道具 举报

6

主题

25

帖子

37

积分

新手上路

Rank: 1

积分
37
QQ
 楼主| 发表于 2017-9-21 09:01:35 | 显示全部楼层
本帖最后由 winnyboy 于 2017-9-21 09:11 编辑

temp = (JSONObject)temp.get("data"); 代码报异常, 不知道是不是和这个有关系useName得到是PSN01, bsessionID得到是传入的bsessionID
  1. private JSONObject getLayout(String useName, String bsessionID) throws JSONException{

  2.                 Action layoutAction = new Action();
  3.                 layoutAction.setProcess("/portal2/process/portal/portalProcess");
  4.                 layoutAction.setActivity("index");
  5.                 layoutAction.setName("selectPortal3ProfilesAction");
  6.                 layoutAction.setParameter("personID", useName);
  7.                 ActionResult result = ActionEngine.invokeAction(layoutAction, ActionUtils.JSON_CONTENT_TYPE, bsessionID, null, null);
  8.                
  9.                 JSONObject temp = (JSONObject)result.getContent();
  10.                 temp = (JSONObject)temp.get("data");
  11.                 temp = (JSONObject)temp.get("value");
  12.                
  13.                 String[] relations = new String[]{"sFunctree", "sPortal", "sOther"};
  14.                 for(String rel : relations){
  15.                         Object s = temp.get(rel);
  16.                         if( (s instanceof String && ((String)s).equals(""))) //s == JSONObject.NULL ||
  17.                                 s = "{}";
  18.                         temp.remove(rel);
  19.                         temp.put(rel.substring(1).toLowerCase(), JSON.parse((String)s));
  20.                 }
  21.                
  22.                 return temp;
  23.         }
复制代码


异常信息如下:
  1. 2017-09-21 08:55:29 编码: JUSTEP002026; 提示: .J(/UI2/portal/base/login/login.j)执行失败
  2. javax.servlet.ServletException: com.justep.ui.exception.UIException: 编码: JUSTEP002026; 提示: .J(/UI2/portal/base/login/login.j)执行失败
  3.         at com.justep.ui.servlet.MainServlet.service(Unknown Source)
  4.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  5.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  6.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  7.         at com.justep.filter.NTLoginFilter.doFilter(NTLoginFilter.java:80)
  8.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  9.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  10.         at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:50)
  11.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  12.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  13.         at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:70)
  14.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  15.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  16.         at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:238)
  17.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  18.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  19.         at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:152)
  20.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  21.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  22.         at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:100)
  23.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  24.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  25.         at com.justep.portal.filter.RedirectFilter.doFilter(Unknown Source)
  26.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  27.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  28.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  29.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  30.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  31.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  32.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  33.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  34.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  35.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  36.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  37.         at java.lang.Thread.run(Thread.java:745)
  38. Caused by: com.justep.ui.exception.UIException: 编码: JUSTEP002026; 提示: .J(/UI2/portal/base/login/login.j)执行失败
  39.         at com.justep.ui.exception.UIException.create(Unknown Source)
  40.         at com.justep.ui.JavaServer.doJ(Unknown Source)
  41.         at com.justep.ui.JavaServer.service(Native Method)
  42.         ... 35 more
  43. Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to com.alibaba.fastjson.JSONObject
  44.         at Login.getLayout(Login.java:175)
  45.         at Login.execute(Login.java:122)
  46.         at com.justep.ui.JavaServer.runJava(Unknown Source)
  47.         ... 37 more
复制代码


result.getContent()得到的值是:
  1. {"code":"JUSTEP151058","data":"","flag":false,"message":"模块"/portal2"不存在","messages":"["编码: JUSTEP151058; 提示: 模块\\"/portal2\\"不存在"]","reason":"","stack":"com.justep.exception.BusinessException: 编码: JUSTEP151058; 提示: 模块"/portal2"不存在\r\n\tat com.justep.exception.BusinessException.create(Unknown Source)\r\n\tat com.justep.util.Utils.check(Unknown Source)\r\n\tat com.justep.model.impl.ModelLoader.loadExtAttribute(Unknown Source)\r\n\tat com.justep.model.impl.ModelLoader.loadModel(Unknown Source)\r\n\tat com.justep.model.impl.ModelLoader.loadModel(Unknown Source)\r\n\tat com.justep.model.impl.ModelLoader.loadModel(Unknown Source)\r\n\tat com.justep.model.impl.ModelLoader.loadModel(Unknown Source)\r\n\tat com.justep.model.impl.ModelLoader.loadModel(Unknown Source)\r\n\tat com.justep.model.impl.ModelImpl.getModel(Unknown Source)\r\n\tat com.justep.model.impl.UtilImplementInstance.getModel(Unknown Source)\r\n\tat com.justep.model.ModelUtils.getModel(Unknown Source)\r\n\tat com.justep.model.ModelUtils.getModelObjectByFullName(Unknown Source)\r\n\tat com.justep.system.action.Engine.invokeActions(Native Method)\r\n\tat com.justep.system.action.Engine.invokeActions(Unknown Source)\r\n\tat com.justep.business.server.BusinessServer.doAction(Unknown Source)\r\n\tat com.justep.business.server.BusinessServer.doExcute(Unknown Source)\r\n\tat com.justep.business.server.BusinessServer.excute(Unknown Source)\r\n\tat com.justep.business.server.BusinessServer.excute(Unknown Source)\r\n\tat com.justep.business.server.BusinessServerServlet.execService(Unknown Source)\r\n\tat com.justep.business.server.BusinessServerServlet.service(Unknown Source)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:723)\r\n\tat com.justep.x.bs.BusinessServerServlet.service(Unknown Source)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:723)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)\r\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)\r\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)\r\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)\r\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)\r\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\r\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)\r\n\tat org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)\r\n\tat org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)\r\n\tat org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n"}
复制代码


如果不加单点登录配置, 用X5自己的认证登录也是报同样错误
回复 支持 反对

使用道具 举报

6

主题

25

帖子

37

积分

新手上路

Rank: 1

积分
37
QQ
 楼主| 发表于 2017-9-21 09:52:42 | 显示全部楼层
重新解压了一个版本, 没有问题了, 谢谢!


再请问下, 注销的URL在哪里改?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-9-21 09:55:50 | 显示全部楼层
你的BIZ下没有portal2模块吗?平台默认带的是有的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-9-21 10:49:39 | 显示全部楼层
注销的URL不需要修改,登录后到了平台的门户后,通过平台门户中的注销就可以
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

6

主题

25

帖子

37

积分

新手上路

Rank: 1

积分
37
QQ
 楼主| 发表于 2017-9-21 11:18:07 | 显示全部楼层
jishuang 发表于 2017-9-21 10:49
注销的URL不需要修改,登录后到了平台的门户后,通过平台门户中的注销就可以 ...

cas Server需要注销, 否则X5注销后会退到X5的登录页, F5刷新页面后会重新进入门户页

注销流程应该是这样的:
1.X5平台自注销
2.跳到cas server注销页,完成cas server的会话注销
此才能算是完整的注销了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-9-21 11:21:10 | 显示全部楼层
平台的注销主要是在/UI2/portal/base/logout/logout.j中实现的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

6

主题

25

帖子

37

积分

新手上路

Rank: 1

积分
37
QQ
 楼主| 发表于 2017-9-21 11:34:39 | 显示全部楼层
jishuang 发表于 2017-9-21 11:21
平台的注销主要是在/UI2/portal/base/logout/logout.j中实现的

我看这个代码,还看了base.js代码
应该是在base.js的doLogout方法中调用了这个Java方法,然后又通过showLoginDialog返回登录页
但我的js能力不是很好,不知道怎么用你们的js封装方法跳到cas的注销页面
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 14:35 , Processed in 0.113927 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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