单点登录日志

feature-LeeD-20221025
李栋 2 years ago
parent 7f3acb3ad9
commit 71e3c61f3d

@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.api.system.language.util.ParseLangDataUtil;
import com.cloudstore.dev.api.bean.CodeTimeBean;
import com.cloudstore.dev.api.util.EMManager;
import com.cloudstore.dev.api.util.LogUtil;
import com.cloudstore.dev.api.util.Util_DataMap;
import com.cloudstore.dev.api.util.Util_public;
import com.cloudstore.dev.bean.LoginLogEntity;
import com.cloudstore.eccom.common.WeaIndexManager;
import com.cloudstore.eccom.constant.WeaMessageCode;
import com.cloudstore.eccom.core.WeaDataChange;
@ -24,20 +26,6 @@ import com.engine.msgcenter.util.ValveConfigManager;
import com.engine.systeminfo.util.AppSyncUtil;
import com.engine.systeminfo.util.IpTablesUtil;
import com.google.common.collect.Maps;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -45,6 +33,7 @@ import weaver.common.util.string.StringUtil;
import weaver.conn.RecordSet;
import weaver.general.PasswordUtil;
import weaver.general.ThreadVarLanguage;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.OnLineMonitor;
@ -54,6 +43,22 @@ import weaver.mobile.plugin.ecology.service.HrmResourceService;
import weaver.rsa.security.RSA;
import weaver.systeminfo.SystemEnv;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.*;
@Path("/ec/dev/app")
public class ServiceEC {
private static volatile boolean inited;
@ -242,66 +247,73 @@ public class ServiceEC {
*/
private User ssoLoginByAuthCode(HttpServletRequest request) {
String authCode = request.getParameter("authCode");
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("auth_code", authCode);
logger.info("ssoLogin_auth_code" + authCode);
MobileSsoLoginService mobileSsoLoginService = getMobileSsoLoginService();
Map<String, Object> userInfo = mobileSsoLoginService.getUserInfo(paramMap, null);
Map<String, Object> userInfoData = (HashMap<String, Object>) userInfo.get("data");
String userCode = (String) userInfoData.get("userCode");
logger.info("userCode:" + userCode);
if (StringUtils.isNotEmpty(userCode)) {
RecordSet rs = new RecordSet();
String sql = " select * from hrmresource where workcode=?";
rs.executeQuery(sql, userCode);
if (rs.next()) {
User user = new User();
String languageidweaver = "8";
user.setUid(rs.getInt("id"));
user.setLoginid(rs.getString("loginid"));
user.setFirstname(rs.getString("firstname"));
user.setLastname(rs.getString("lastname"));
user.setAliasname(rs.getString("aliasname"));
user.setTitle(rs.getString("title"));
user.setTitlelocation(rs.getString("titlelocation"));
user.setSex(rs.getString("sex"));
user.setPwd(rs.getString("password"));
languageidweaver = rs.getString("systemlanguage");
user.setLanguage(Util.getIntValue(languageidweaver, 0));
user.setTelephone(rs.getString("telephone"));
user.setMobile(rs.getString("mobile"));
user.setMobilecall(rs.getString("mobilecall"));
user.setEmail(rs.getString("email"));
user.setCountryid(rs.getString("countryid"));
user.setLocationid(rs.getString("locationid"));
user.setResourcetype(rs.getString("resourcetype"));
user.setStartdate(rs.getString("startdate"));
user.setEnddate(rs.getString("enddate"));
user.setContractdate(rs.getString("contractdate"));
user.setJobtitle(rs.getString("jobtitle"));
user.setJobgroup(rs.getString("jobgroup"));
user.setJobactivity(rs.getString("jobactivity"));
user.setJoblevel(rs.getString("joblevel"));
user.setSeclevel(rs.getString("seclevel"));
user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user.setManagerid(rs.getString("managerid"));
user.setAssistantid(rs.getString("assistantid"));
user.setPurchaselimit(rs.getString("purchaselimit"));
user.setCurrencyid(rs.getString("currencyid"));
user.setLastlogindate(rs.getString("currentdate"));
user.setLogintype("1");
user.setAccount(rs.getString("account"));
user.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user);
request.getSession(true).setAttribute("moniter", new OnLineMonitor("" + user.getUID(), user.getLoginip()));
return user;
try {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("auth_code", authCode);
logger.info("ssoLogin_auth_code" + authCode);
MobileSsoLoginService mobileSsoLoginService = getMobileSsoLoginService();
Map<String, Object> userInfo = mobileSsoLoginService.getUserInfo(paramMap, null);
Map<String, Object> userInfoData = (HashMap<String, Object>) userInfo.get("data");
String userCode = (String) userInfoData.get("userCode");
logger.info("userCode:" + userCode);
if (StringUtils.isNotEmpty(userCode)) {
RecordSet rs = new RecordSet();
String sql = " select * from hrmresource where workcode=?";
rs.executeQuery(sql, userCode);
if (rs.next()) {
User user = new User();
String languageidweaver = "8";
user.setUid(rs.getInt("id"));
user.setLoginid(rs.getString("loginid"));
user.setFirstname(rs.getString("firstname"));
user.setLastname(rs.getString("lastname"));
user.setAliasname(rs.getString("aliasname"));
user.setTitle(rs.getString("title"));
user.setTitlelocation(rs.getString("titlelocation"));
user.setSex(rs.getString("sex"));
user.setPwd(rs.getString("password"));
languageidweaver = rs.getString("systemlanguage");
user.setLanguage(Util.getIntValue(languageidweaver, 0));
user.setTelephone(rs.getString("telephone"));
user.setMobile(rs.getString("mobile"));
user.setMobilecall(rs.getString("mobilecall"));
user.setEmail(rs.getString("email"));
user.setCountryid(rs.getString("countryid"));
user.setLocationid(rs.getString("locationid"));
user.setResourcetype(rs.getString("resourcetype"));
user.setStartdate(rs.getString("startdate"));
user.setEnddate(rs.getString("enddate"));
user.setContractdate(rs.getString("contractdate"));
user.setJobtitle(rs.getString("jobtitle"));
user.setJobgroup(rs.getString("jobgroup"));
user.setJobactivity(rs.getString("jobactivity"));
user.setJoblevel(rs.getString("joblevel"));
user.setSeclevel(rs.getString("seclevel"));
user.setUserDepartment(Util.getIntValue(rs.getString("departmentid"), 0));
user.setUserSubCompany1(Util.getIntValue(rs.getString("subcompanyid1"), 0));
user.setUserSubCompany2(Util.getIntValue(rs.getString("subcompanyid2"), 0));
user.setUserSubCompany3(Util.getIntValue(rs.getString("subcompanyid3"), 0));
user.setUserSubCompany4(Util.getIntValue(rs.getString("subcompanyid4"), 0));
user.setManagerid(rs.getString("managerid"));
user.setAssistantid(rs.getString("assistantid"));
user.setPurchaselimit(rs.getString("purchaselimit"));
user.setCurrencyid(rs.getString("currencyid"));
user.setLastlogindate(rs.getString("currentdate"));
user.setLogintype("1");
user.setAccount(rs.getString("account"));
user.setLoginip(request.getRemoteAddr());
request.getSession(true).setMaxInactiveInterval(60 * 60 * 24);
request.getSession(true).setAttribute("weaver_user@bean", user);
request.getSession(true).setAttribute("moniter", new OnLineMonitor("" + user.getUID(), user.getLoginip()));
LogUtil.log(LoginLogEntity.builder().param("workcode-" + userCode).result("成功").msg(authCode).modedate(TimeUtil.getCurrentTimeString()).build());
return user;
} else {
LogUtil.log(LoginLogEntity.builder().param("workcode-" + userCode).result("失败").msg("人员在oa不存在").modedate(TimeUtil.getCurrentTimeString()).build());
}
}
} catch (Exception e) {
LogUtil.log(LoginLogEntity.builder().param("authcode-" + authCode).result("失败").msg(e.getMessage()).modedate(TimeUtil.getCurrentTimeString()).build());
}
return null;
}

@ -0,0 +1,46 @@
package com.cloudstore.dev.api.util;
import com.cloudstore.dev.bean.LoginLogEntity;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.ThreadPoolUtil;
import weaver.interfaces.dito.comInfo.PropBean;
import java.util.concurrent.ExecutorService;
/**
* @version 1.0
* @Title ecology-9
* @Company
* @CreateDate 2023/8/9
* @Description app
* @Author Lee
*/
public class LogUtil {
public static void log(LoginLogEntity logEntity) {
try {
Runnable runnable = new Runnable() {
@Override
public void run() {
String formModeId = PropBean.getUfPropValue("logEntityFormModeId");
String logEntityCustomId = PropBean.getUfPropValue("logEntityCustomId");
String logEntityTable = PropBean.getUfPropValue("logEntityTable");
RecordSet recordSet = new RecordSet();
String sql = "insert into " + logEntityTable + " (param,msg,result,formmodeid,modedate) values(?,?,?,?,?)";
recordSet.executeUpdate(sql, logEntity.getParam(), logEntity.getMsg(), logEntity.getResult(), formModeId, logEntity.getModedate());
//权限重构
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, Integer.parseInt(formModeId), Integer.parseInt(logEntityCustomId));
}
};
ExecutorService threadPool = ThreadPoolUtil.getThreadPool(null, null);
threadPool.execute(runnable);
} catch (Exception e) {
new BaseBean().writeLog("LogUtil" + e.getMessage());
}
}
}

@ -0,0 +1,26 @@
package com.cloudstore.dev.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @version 1.0
* @Title ecology-9
* @Company
* @CreateDate 2023/8/10
* @Description ${description}
* @Author Lee
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LoginLogEntity {
private String param;
private String msg;
private String result;
private String formmodeid;
private String modedate;
}

@ -1,11 +1,14 @@
package com.engine.dito.ssologin.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cloudstore.dev.api.util.LogUtil;
import com.cloudstore.dev.api.util.Util_DataCache;
import com.cloudstore.dev.bean.LoginLogEntity;
import com.engine.core.impl.Service;
import com.engine.dito.ssologin.service.MobileSsoLoginService;
import org.apache.commons.lang3.StringUtils;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.hrm.User;
import weaver.interfaces.dito.comInfo.PropBean;
import weaver.interfaces.dito.util.HttpUtils;
@ -80,8 +83,9 @@ public class MobileSsoLoginServiceImpl extends Service implements MobileSsoLogin
Map<String, Object> dataMap = new HashMap<>();
BaseBean baseBean = new BaseBean();
baseBean.writeLog("getUserInfoStart");
String authCode = "";
try {
String authCode = (String) paramMap.get("auth_code");
authCode = (String) paramMap.get("auth_code");
String accessToken = (String) Util_DataCache.getObjVal(SSO_LOGIN_ACCESS_TOKEN);
if (StringUtils.isEmpty(accessToken)) {
accessToken = getAccessToken();
@ -110,6 +114,7 @@ public class MobileSsoLoginServiceImpl extends Service implements MobileSsoLogin
baseBean.writeLog("获取用户信息失败", dataJson.toString());
return dataMap;
} catch (Exception e) {
LogUtil.log(LoginLogEntity.builder().param("authCode-" + authCode).result("失败").msg("获取用户信息接口异常").modedate(TimeUtil.getCurrentTimeString()).build());
baseBean.writeLog("获取用户信息异常", e.getMessage());
dataMap.put("api_status", false);
dataMap.put("errorMsg", e.getMessage());

Loading…
Cancel
Save