feat(系统管理-日志管理): 用户登录日志

This commit is contained in:
fit2cloud-chenyw 2022-08-17 18:11:00 +08:00
parent abaa34425b
commit 9249ac97bd
8 changed files with 36 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import io.dataease.auth.entity.TokenInfo;
import io.dataease.auth.service.AuthUserService;
import io.dataease.auth.util.JWTUtils;
import io.dataease.auth.util.RsaUtil;
import io.dataease.commons.constants.SysLogConstants;
import io.dataease.commons.utils.*;
import io.dataease.controller.sys.request.LdapAddRequest;
import io.dataease.exception.DataEaseException;
@ -130,6 +131,7 @@ public class AuthServer implements AuthApi {
// 记录token操作时间
result.put("token", token);
ServletUtils.setToken(token);
DeLogUtils.save(SysLogConstants.OPERATE_TYPE.LOGIN, SysLogConstants.SOURCE_TYPE.USER, user.getUserId(), null, null, null);
authUserService.clearCache(user.getUserId());
return result;
}

View File

@ -22,7 +22,13 @@ public class SysLogConstants {
CREATELINK(8, "OPERATE_TYPE_CREATELINK"),
DELETELINK(9, "OPERATE_TYPE_DELETELINK"),
MODIFYLINK(10, "OPERATE_TYPE_MODIFYLINK"),
UPLOADFILE(11, "OPERATE_TYPE_UPLOADFILE");
UPLOADFILE(11, "OPERATE_TYPE_UPLOADFILE"),
LOGIN(12, "OPERATE_TYPE_LOGIN"),
VIEW(13, "OPERATE_TYPE_VIEW"),
EXPORT(14, "OPERATE_TYPE_EXPORT");
private Integer value;
private String name;
OPERATE_TYPE(Integer value, String name) {

View File

@ -5,7 +5,9 @@ import io.dataease.auth.entity.SysUserEntity;
import io.dataease.auth.entity.TokenInfo;
import io.dataease.auth.service.AuthUserService;
import io.dataease.auth.util.JWTUtils;
import io.dataease.commons.constants.SysLogConstants;
import io.dataease.commons.utils.CodingUtil;
import io.dataease.commons.utils.DeLogUtils;
import io.dataease.commons.utils.LogUtil;
import io.dataease.commons.utils.ServletUtils;
@ -68,6 +70,7 @@ public class CasServer {
ServletUtils.setToken(token);
Cookie cookie_token = new Cookie("Authorization", token);cookie_token.setPath("/");
response.addCookie(cookie_token);
DeLogUtils.save(SysLogConstants.OPERATE_TYPE.LOGIN, SysLogConstants.SOURCE_TYPE.USER, sysUserEntity.getUserId(), null, null, null);
}catch(Exception e) {

View File

@ -9,6 +9,8 @@ import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import io.dataease.commons.constants.SysLogConstants;
import io.dataease.commons.utils.DeLogUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@ -80,6 +82,7 @@ public class SSOServer {
String token = JWTUtils.sign(tokenInfo, realPwd);
ServletUtils.setToken(token);
DeLogUtils.save(SysLogConstants.OPERATE_TYPE.LOGIN, SysLogConstants.SOURCE_TYPE.USER, sysUserEntity.getUserId(), null, null, null);
Cookie cookie_token = new Cookie("Authorization", token);
cookie_token.setPath("/");

View File

@ -170,6 +170,14 @@ public class LogService {
results.add(folderItem);
}
FolderItem userLogin = new FolderItem();
SysLogConstants.OPERATE_TYPE operateTypeLogin = SysLogConstants.OPERATE_TYPE.LOGIN;
SysLogConstants.SOURCE_TYPE sourceTypeLogin = SysLogConstants.SOURCE_TYPE.USER;
userLogin.setId(operateTypeLogin.getValue() + "-" + sourceTypeLogin.getValue());
String operateTypeName = SysLogConstants.operateTypeName(operateTypeLogin.getValue());
String sourceTypeName = sourceTypeLogin.getName();
userLogin.setName(Translator.get(operateTypeName) + Translator.get(sourceTypeName));
results.add(userLogin);
return results;
}
@ -195,9 +203,16 @@ public class LogService {
sysLogWithBLOBs.setRemark(gson.toJson(sysLogDTO.getRemarks()));
}
sysLogWithBLOBs.setTime(System.currentTimeMillis());
if (ObjectUtils.isNotEmpty(user)) {
sysLogWithBLOBs.setUserId(user.getUserId());
sysLogWithBLOBs.setLoginName(user.getUsername());
sysLogWithBLOBs.setNickName(user.getNickName());
} else if (sysLogDTO.getOperateType() == SysLogConstants.OPERATE_TYPE.LOGIN.getValue()) {
sysLogWithBLOBs.setUserId(Long.parseLong(sysLogDTO.getSourceId()));
sysLogWithBLOBs.setLoginName(sysLogDTO.getSourceName());
sysLogWithBLOBs.setNickName(sysLogDTO.getSourceName());
}
// sysLogWithBLOBs.setIp(ip);
sysLogMapper.insert(sysLogWithBLOBs);
}

View File

@ -142,6 +142,7 @@ OPERATE_TYPE_CREATELINK=Create Link
OPERATE_TYPE_DELETELINK=Delete Link
OPERATE_TYPE_MODIFYLINK=Modify Link
OPERATE_TYPE_UPLOADFILE=Upload
OPERATE_TYPE_LOGIN=Login
SOURCE_TYPE_DATASOURCE=DATASOURCE
SOURCE_TYPE_DATASET=DATASET

View File

@ -140,6 +140,7 @@ OPERATE_TYPE_CREATELINK=\u521B\u5EFA\u516C\u5171\u94FE\u63A5
OPERATE_TYPE_DELETELINK=\u5220\u9664\u516C\u5171\u94FE\u63A5
OPERATE_TYPE_MODIFYLINK=\u4FEE\u6539\u516C\u5171\u94FE\u63A5
OPERATE_TYPE_UPLOADFILE=\u4E0A\u4F20
OPERATE_TYPE_LOGIN=\u767B\u5F55
SOURCE_TYPE_DATASOURCE=\u6570\u636E\u6E90
SOURCE_TYPE_DATASET=\u6570\u636E\u96C6

View File

@ -141,6 +141,7 @@ OPERATE_TYPE_CREATELINK=\u5275\u5EFA\u516C\u5171\u93C8\u63A5
OPERATE_TYPE_DELETELINK=\u522A\u9664\u516C\u5171\u93C8\u63A5
OPERATE_TYPE_MODIFYLINK=\u4FEE\u6539\u516C\u5171\u93C8\u63A5
OPERATE_TYPE_UPLOADFILE=\u4E0A\u50B3
OPERATE_TYPE_LOGIN=\u767B\u9304
SOURCE_TYPE_DATASOURCE=\u6578\u64DA\u6E90
SOURCE_TYPE_DATASET=\u6578\u64DA\u96C6