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

QQ登录

只需一步,快速开始

楼主: adjust

[处理中3] Bex3.8 单点登录问题

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-25 17:27:12 | 显示全部楼层
不生效1楼的错误应该报不出来的,错误都已经报到filter里面了com.justep.filter.NTLoginFilter.doFilter(NTLoginFilter.java:69)
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

229

帖子

742

积分

高级会员

Rank: 4

积分
742
QQ
 楼主| 发表于 2020-5-26 08:19:17 | 显示全部楼层
本帖最后由 adjust 于 2020-5-26 08:36 编辑
jishuang 发表于 2020-5-25 17:27
不生效1楼的错误应该报不出来的,错误都已经报到filter里面了com.justep.filter.NTLoginFilter.doFilter(NT ...

我将jar包反编译,打印输出用户名为null,然后给定用户名默认值为system,其余代码未作改动,也是报同样的错误:javax.servlet.ServletException: com.justep.ui.exception.UIException: 编码: JUSTEP000014; 提示: WINDOW编译出错, 文件"/UI2/portal/pc3/undefined/default.html"不存在。具体错误1楼已贴出
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-26 09:07:11 | 显示全部楼层
7楼和9楼的看了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

229

帖子

742

积分

高级会员

Rank: 4

积分
742
QQ
 楼主| 发表于 2020-5-26 10:40:32 | 显示全部楼层
本帖最后由 adjust 于 2020-5-26 11:47 编辑
jishuang 发表于 2020-5-26 09:07
7楼和9楼的看了吗?

7楼提到的我不需要啊,7楼说到如果需要不过滤地址的话才需要进行此操作;
9楼的也配置了,同样报错。
现在跟踪代码,是x5-cas.jar 里报的错误,
  • 没有获取到用户名,这个我已用默认值system替代;
  • 传递用户为system后,后续继续报错,报错内容见1楼的附件

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-26 13:13:44 | 显示全部楼层
平台默认的过滤是pc下的,你现在是pc3下的,要修改filter中的过滤的地址啊
1楼的还是com.justep.filter.NTLoginFilter.doFilter(NTLoginFilter.java:69)错误就没有变过
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

229

帖子

742

积分

高级会员

Rank: 4

积分
742
QQ
 楼主| 发表于 2020-5-26 13:53:02 | 显示全部楼层
jishuang 发表于 2020-5-26 13:13
平台默认的过滤是pc下的,你现在是pc3下的,要修改filter中的过滤的地址啊
1楼的还是com.justep.filter.NTL ...

平台默认的过滤是全过滤,7楼的链接是要创建不需要过滤的地址,所以这个没有参考意义;
9楼的我也试过,不管是pc3还是pc,错误都是一样的。提示是找不到pc3下的undefined/default.html,这个不管是pc还是pc3下都没有这个地址的。
我说了,通过反编译jar包,问题就在这段内容,第69行就是最后一行代码
  1. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
  2.                 String targetUrl;
  3.         HttpServletRequest req = (HttpServletRequest) request;
  4.         HttpServletResponse res = (HttpServletResponse) response;
  5.         HttpSession session = req.getSession();
  6.         String username = "system";
  7.         if (session != null) {
  8. //                String username = AssertionHolder.getAssertion().getPrincipal().getName();

  9.             System.out.println("!!!!!!!!!!!!!!!!!!!!!!."+username);
  10.             if (SystemUtils.isNotEmptyString(username)) {
  11.                 String bsessionid = getBSessionID(req, username);
  12.                 String url = NetUtils.getRequestPath(req);
  13.                 if (this.urlMapping.containsKey(url) && !"true".equals(new StringBuilder(String.valueOf(req.getParameter("_login"))).toString()) && SystemUtils.isEmptyString(req.getParameter("$pageType"))) {
  14.                     String targetUrl2 = String.valueOf(req.getContextPath()) + this.urlMapping.get(url);
  15.                     if (targetUrl2.contains("?")) {
  16.                         targetUrl = String.valueOf(targetUrl2) + "&bsessionid=" + bsessionid + "&_login=true";
  17.                     } else {
  18.                         targetUrl = String.valueOf(targetUrl2) + "?bsessionid=" + bsessionid + "&_login=true";
  19.                     }
  20.                     Cookie cookie = new Cookie(BSESSIONID, bsessionid);
  21.                     cookie.setPath("/");
  22.                     res.addCookie(cookie);
  23.                     res.sendRedirect(targetUrl);
  24.                     return;
  25.                 }
  26.             }
  27.         }
  28.         chain.doFilter(req, res);
  29.     }
复制代码

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-26 14:49:46 | 显示全部楼层

this.setBsessionid(justep.Util.getCookie("bsessionid"));改为
this.setBsessionid(justep.Util.getCookie("bsessionid") || this.getContext().getRequestParameter("bsessionid"));这个修改了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

229

帖子

742

积分

高级会员

Rank: 4

积分
742
QQ
 楼主| 发表于 2020-5-26 16:28:55 | 显示全部楼层
本帖最后由 adjust 于 2020-5-26 16:33 编辑
jishuang 发表于 2020-5-26 14:49
this.setBsessionid(justep.Util.getCookie("bsessionid"));改为
this.setBsessionid(justep.Util.getCook ...

与这项无关。是否修改不影响。
找到问题原因了:
  1. <context-param>
  2.     <param-name>pc.login.path</param-name>
  3.     <param-value>/UI2/portal/pc3/login/login.w?device=pc</param-value>
  4.   </context-param>
复制代码
login.path原来默认是 /UI2/portal/pc3/idnex.w?device=pc,需要指向login.w后,过滤器才生效。
但有一个问题是,如果直接输入 xxx/x5/UI2/portal/pc3/idnex.w?device=pc,页面显示为登录页面,地址栏地址不变;登录后刷新,也会跳转到此登录页面。
另外帮忙把一楼的第一个图片帮忙删掉。谢了。

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-26 18:18:15 | 显示全部楼层
login.w是在index.w中通过windowDialog打开的,不是单独的页面,所以要用index.w
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

229

帖子

742

积分

高级会员

Rank: 4

积分
742
QQ
 楼主| 发表于 2020-5-27 09:43:09 | 显示全部楼层
本帖最后由 adjust 于 2020-5-27 09:46 编辑
jishuang 发表于 2020-5-26 18:18
login.w是在index.w中通过windowDialog打开的,不是单独的页面,所以要用index.w

测试过程中又发现了一个新的问题,每次浏览器直接关闭,然后重新输入地址访问后,此错误必现,浏览器地址为 xxx.cn/x5/;jsessionid=52D3F51311A77CA3994AE6B089327BC4
  1. javax.servlet.ServletException: com.justep.ui.exception.UIException: 编码: JUSTEP002001; 提示: 根据获取$UI的路径出错
  2.         at com.justep.ui.servlet.MainServlet.service(Unknown Source)
  3.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  4.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  5.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  6.         at com.justep.portal.filter.RedirectFilter.doFilter(Unknown Source)
  7.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  8.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  9.         at com.justep.ui.filter.MicroServiceAdminFilter.doFilter(Unknown Source)
  10.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  11.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  12.         at com.justep.filter.NTLoginFilter.doFilter(NTLoginFilter.java:81)
  13.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  14.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  15.         at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
  16.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  17.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  18.         at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
  19.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  20.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  21.         at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:201)
  22.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  23.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  24.         at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:107)
  25.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  26.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  27.         at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
  28.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  29.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  30.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  31.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  32.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  33.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  34.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  35.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  36.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  37.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  38.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  39.         at java.lang.Thread.run(Thread.java:745)
  40. Caused by: com.justep.ui.exception.UIException: 编码: JUSTEP002001; 提示: 根据获取$UI的路径出错
  41.         at com.justep.ui.exception.UIException.create(Unknown Source)
  42.         at com.justep.ui.JustepConfig.getUIValue(Unknown Source)
  43.         at com.justep.ui.ResourceServer.execute(Unknown Source)
  44.         ... 38 more
复制代码
刷新也没有用,必须在当前浏览器重新输入地址,才能正常进入。报错行请参照16楼贴出的代码,at com.justep.filter.NTLoginFilter.doFilter(NTLoginFilter.java:81),这个是16楼代码的最后一行

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 14:38 , Processed in 0.064209 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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