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

QQ登录

只需一步,快速开始

查看: 4693|回复: 7

[处理中3] 判断用哪种方式登录系统

[复制链接]

85

主题

273

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
发表于 2018-6-7 12:02:54 | 显示全部楼层 |阅读模式
1.单点登录成功后,传过来的账号,如何调用ntLoginAction 进行登录,这个案例 /UI2/SA/weixin/src/com/justep/weixin/cp/WxHelper.java看了没有看懂,不知道在哪儿调用的ntLoginAction,麻烦您给点具体思路


2.另外用户也可以直接用账号和密码登录
在哪块判断是否用ntLoginAction  登录还是用LoginAction进行登录

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-6-7 13:37:37 | 显示全部楼层
1.ssoLogin方法中的实现调用的啊

然后在/UI2/SA/weixin/dsrc/Oauth2Callback.java中调用的ssoLogin
2.具体需求要做什么?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

85

主题

273

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
 楼主| 发表于 2018-6-7 13:47:13 | 显示全部楼层
jishuang 发表于 2018-6-7 13:37
1.ssoLogin方法中的实现调用的啊

然后在/UI2/SA/weixin/dsrc/Oauth2Callback.java中调用的ssoLogin

在哪儿调用的ssoLogin ,我如果只用账号登录的话改如何调用,
业务场景:
如果从SSO那边登录过来就只进行账号验证登录,如果是单独登录系统就验证账号和密码登录

我不知道在哪儿进行设置判断
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-6-7 14:44:21 | 显示全部楼层
从SSO那边登录过来,就在肯定提供的有接口啊,没有接口怎么知道用sso登录的
自己定义一个.j,在接口的地方调用.j
.j中调用action实现登录,跳转到首页,如下:
  1. import java.io.IOException;
  2. import java.sql.Date;
  3. import java.util.HashMap;

  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.Cookie;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;

  8. import com.alibaba.fastjson.JSONObject;
  9. import com.justep.biz.client.Action;
  10. import com.justep.biz.client.ActionEngine;
  11. import com.justep.biz.client.ActionResult;
  12. import com.justep.biz.client.ActionUtils;
  13. import com.justep.ui.JustepConfig;

  14. public class Login extends com.justep.ui.impl.JProcessorImpl {
  15.         public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  16.                 JSONObject content = null;
  17.                 String bsessionid = "";
  18.                 // 从cookie中获取已有的bsessionid
  19.                 Cookie[] cookies = request.getCookies();
  20.                 if (cookies != null) {
  21.                         for (int i = 0; i < cookies.length; i++) {
  22.                                 String name = cookies[i].getName();
  23.                                 if (name.equals("bsessionid")) {
  24.                                         bsessionid = cookies[i].getValue();
  25.                                 }
  26.                         }
  27.                 }
  28.                 // 判断bsessionid是否超时
  29.                 ActionResult checkResult = ActionEngine.checkSession(bsessionid, ActionUtils.JSON_CONTENT_TYPE);
  30.                 if (checkResult.isSessionTimeOut()) {
  31.                         String username = request.getParameter("username");
  32.                         String password = request.getParameter("password");
  33.                         String ip = request.getRemoteAddr();
  34.                         String language = "zh_CN";
  35.                         Date loginDate = new Date(System.currentTimeMillis());

  36.                         Action action = new Action();
  37.                         action.setProcess("/SA/OPM/system/systemProcess");
  38.                         action.setActivity("mainActivity");
  39.                         action.setName("ntLoginAction");
  40.                         action.setParameter("name", username);
  41.                         action.setParameter("loginDate", new java.sql.Date(System.currentTimeMillis()));
  42.                         action.setParameter("ip", "127.0.0.1");
  43.                         action.setParameter("options", new HashMap<String, Object>());
  44.                         action.setParameter("lang", language);
  45.                         try {
  46.                                 ActionResult ar = ActionEngine.invokeActions(JustepConfig.getBusinessServer() + "/login2", null, action.asXML().getBytes("UTF-8"), null, ActionUtils.XML_CONTENT_TYPE,
  47.                                                 ActionUtils.XML_CONTENT_TYPE, null, language, "post", null);
  48.                                 if (ar.isSuccess()) {
  49.                                         content = (JSONObject) ar.getContent();
  50.                                         bsessionid = ar.getBSessionID();
  51.                                 } else {
  52.                                         throw new RuntimeException(ar.getMessage());
  53.                                 }
  54.                         } catch (Exception e) {
  55.                                 throw new RuntimeException(e.getMessage() + "", e);
  56.                         }
  57.                         // 把bsessionid放到Cookie中
  58.                         Cookie cookie = new Cookie("bsessionid", bsessionid);
  59.                         cookie.setMaxAge(-1);
  60.                         cookie.setPath("/");
  61.                         response.addCookie(cookie);
  62.                 } else {
  63.                         content = (JSONObject) checkResult.getContent();
  64.                 }
  65.                 content.put("bsessionid", bsessionid);
  66.                 response.setCharacterEncoding("UTF-8");
  67.                 response.addHeader("Access-Control-Allow-Origin", "*");
  68.                 response.setContentType(ActionUtils.JSON_CONTENT_TYPE);
  69.                 response.sendRedirect("/x5/UI2/portal/pc3/index.w");
  70.                 response.flushBuffer();

  71.         }
  72. }
复制代码



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



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

使用道具 举报

85

主题

273

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
 楼主| 发表于 2018-6-7 16:05:24 | 显示全部楼层
jishuang 发表于 2018-6-7 14:44
从SSO那边登录过来,就在肯定提供的有接口啊,没有接口怎么知道用sso登录的
自己定义一个.j,在接口的地方调 ...

ok  可以结贴了
回复 支持 反对

使用道具 举报

85

主题

273

帖子

647

积分

高级会员

Rank: 4

积分
647
QQ
 楼主| 发表于 2018-6-7 16:15:45 | 显示全部楼层
jishuang 发表于 2018-6-7 14:44
从SSO那边登录过来,就在肯定提供的有接口啊,没有接口怎么知道用sso登录的
自己定义一个.j,在接口的地方调 ...

后台报错:cannot be cast to com.alibaba.fastjson.JSONObject
  1. 2018-06-07 16:10:03 org.dom4j.tree.DefaultDocument cannot be cast to com.alibaba.fastjson.JSONObject
  2. javax.servlet.ServletException: java.lang.RuntimeException: org.dom4j.tree.DefaultDocument cannot be cast to com.alibaba.fastjson.JSONObject
  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.portal.filter.RedirectFilter.doFilter(Unknown Source)
  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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  11.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  12.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  13.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  14.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  15.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  16.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  17.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  18.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  19.         at java.lang.Thread.run(Thread.java:745)
  20. Caused by: java.lang.RuntimeException: org.dom4j.tree.DefaultDocument cannot be cast to com.alibaba.fastjson.JSONObject
  21.         at NtLogin.execute(NtLogin.java:60)
  22.         at com.justep.ui.JavaServer.runJava(Unknown Source)
  23.         at com.justep.ui.JavaServer.doJ(Unknown Source)
  24.         at com.justep.ui.JavaServer.service(Native Method)
  25.         ... 17 more
  26. Caused by: java.lang.ClassCastException: org.dom4j.tree.DefaultDocument cannot be cast to com.alibaba.fastjson.JSONObject
  27.         at NtLogin.execute(NtLogin.java:54)
  28.         ... 20 more
  29. 六月 07, 2018 4:10:03 下午 org.apache.catalina.core.StandardWrapperValve invoke
  30. 严重: Servlet.service() for servlet main-servlet threw exception
  31. java.lang.ClassCastException: org.dom4j.tree.DefaultDocument cannot be cast to com.alibaba.fastjson.JSONObject
  32.         at NtLogin.execute(NtLogin.java:54)
  33.         at com.justep.ui.JavaServer.runJava(Unknown Source)
  34.         at com.justep.ui.JavaServer.doJ(Unknown Source)
  35.         at com.justep.ui.JavaServer.service(Native Method)
  36.         at com.justep.ui.servlet.MainServlet.service(Unknown Source)
  37.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
  38.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  39.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  40.         at com.justep.portal.filter.RedirectFilter.doFilter(Unknown Source)
  41.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  42.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  43.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  44.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
  45.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  46.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
  47.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  48.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
  49.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
  50.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
  51.         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
  52.         at java.lang.Thread.run(Thread.java:745)

复制代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-6-7 16:53:23 | 显示全部楼层
java对应的dsrc设置为源码路径,把构建路径中json相关的jar删除,然后把runtime\UIServer\WEB-INF\lib\fastjson-1.1.25.jar导入
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

33

主题

373

帖子

916

积分

高级会员

Rank: 4

积分
916
QQ
发表于 2019-4-29 12:35:49 | 显示全部楼层
学习登录
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 03:42 , Processed in 0.062583 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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