<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="weaver.general.Util" %> <%@ page import="weaver.integration.entrance.bean.OutterLoginBean" %> <%@ page import="weaver.integration.entrance.service.EntranceService" %> <%@ page import="weaver.integration.entrance.service.IOutterSysServer" %> <%@ page import="weaver.integration.entrance.service.OutterSysServer" %> <%@ page import="weaver.integration.entrance.service.permission.IPermissionService" %> <%@ page import="weaver.integration.entrance.service.permission.PermissionService" %> <%@ page import="weaver.integration.entrance.utils.StringUtils" %> <%@ page import="weaver.integration.entrance.exceptions.OtherParamsEncryptException" %> <%@ page import="weaver.integration.entrance.exceptions.AccountOrPasswordEncryptException" %> <%@ page import="weaver.integration.logging.LoggerFactory" %> <%@ page import="weaver.integration.logging.Logger" %> <%@ page import="com.alibaba.fastjson.JSONObject" %> <%@ page import="weaver.hrm.User" %> <%@ page import="weaver.hrm.HrmUserVarify" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.HashMap" %> <%@ page import="weaver.systeminfo.SystemEnv" %> <%@ page import="java.util.Objects" %> <%@ page import="cn.hutool.core.map.MapUtil" %> <%@ page import="weaver.general.BaseBean" %> <%----%> <%----%> <%@ include file="/systeminfo/init_wev8.jsp" %> <% Logger integration_logger = LoggerFactory.getLogger(); BaseBean bb = new BaseBean(); User this_user = HrmUserVarify.getUser(request,response); //企业微信集成时,构造的用户session会缺少loginid,导致在企业微信中引用集成登录时,因获取不到用户名导致无法单点登录。 if(Util.null2String(this_user.getLoginid()).equals("")){ //查询loginid RecordSet.executeSql("select loginid from HrmResource where id="+this_user.getUID()); if(RecordSet.next()){ this_user.setLoginid(Util.null2String(RecordSet.getString("loginid"))); } //重新设置用户session request.getSession(true).setAttribute("weaver_user@bean", this_user); } IPermissionService permissionService=new PermissionService(); String operationType = permissionService.getOperationType(request); String sysid = Util.null2String(request.getParameter("id"));// 系统标识 String coremailPath = Util.null2String(request.getParameter("coremailPath")); integration_logger.info("sysid=========================" + sysid); integration_logger.info("operationType=========================" + operationType); integration_logger.info("coremailPath=========================" + coremailPath); if ("".equals(operationType)) { // 权限判断 // 得到有权限查看的集成登录 String access = permissionService.isAccess(sysid, request, response); integration_logger.info("access=========================" + access); baseBean.writeLog("access状态码->"+access); if (!StringUtils.isBlank(access)){ if(access.startsWith("/")&&!access.startsWith(weaver.general.GCONST.getContextPath())){ access = weaver.general.GCONST.getContextPath()+access; } response.sendRedirect(access); return; } } EntranceService entranceService = new EntranceService(); IOutterSysServer outterSysServer = new OutterSysServer(); OutterLoginBean loginBean = null; Map map = new HashMap(); try { loginBean = entranceService.getLoginBean(outterSysServer, sysid, operationType, request, response); map = entranceService.getUrl(outterSysServer, loginBean, operationType, request, response); //coremail 特殊处理 if (!StringUtils.isEmpty(coremailPath)) { integration_logger.info("处理coremailPath" + coremailPath); String redirectUrl = MapUtil.getStr(map, "redirectUrl"); String isRedirect = MapUtil.getStr(map, "isRedirect"); integration_logger.info("处理coremail redirectUrl" + redirectUrl); integration_logger.info("处理coremail isRedirect" + isRedirect); if (!StringUtils.isEmpty(redirectUrl) && "true".equalsIgnoreCase(isRedirect)) { String replaceUrl = redirectUrl.replace("#mail.list|{\"fid\":1}", coremailPath); integration_logger.info("处理coremail replaceUrl" + replaceUrl); map.put("redirectUrl", replaceUrl); } } integration_logger.info("map=========================" + JSONObject.toJSONString(map)); } catch (ClassNotFoundException e) { %> <% }catch (NoSuchMethodException e){ e.printStackTrace(); %> <% }catch (IllegalAccessException e){ %> <% }catch (InstantiationException e){ %> <% }catch (NoClassDefFoundError e){ %> <% }catch (OtherParamsEncryptException e) { %> <% } catch (AccountOrPasswordEncryptException e) { %> <% }catch (Exception e){ %> <% } if (Objects.nonNull(map)){ if (map.get("isError")!= null&&"true".equals(map.get("isError"))){ %> <% return; } baseBean.writeLog("进入前"); if (map.get("isRedirect")!=null && "true".equals(map.get("isRedirect"))){ baseBean.writeLog("redirectUrl111111========================="); integration_logger.info("redirectUrl111111========================="); response.sendRedirect(map.get("redirectUrl").toString()); return; } if (map.get("isRedirect")!=null && "false".equals(map.get("isRedirect"))){ out.println(map.get("redirectUrl").toString()); return; } }else { integration_logger.error("map is null ===================================================="); } %>