系统日志/业务日志
This commit is contained in:
parent
a5d5f2cac0
commit
dbd1057176
|
|
@ -3,6 +3,7 @@ package com.securitycontrol.auth.controller;
|
||||||
|
|
||||||
import com.securitycontrol.auth.form.LoginBody;
|
import com.securitycontrol.auth.form.LoginBody;
|
||||||
import com.securitycontrol.auth.service.SysLoginService;
|
import com.securitycontrol.auth.service.SysLoginService;
|
||||||
|
import com.securitycontrol.auth.service.SysRecordLogService;
|
||||||
import com.securitycontrol.common.core.constant.SecurityConstants;
|
import com.securitycontrol.common.core.constant.SecurityConstants;
|
||||||
import com.securitycontrol.common.core.domain.Result;
|
import com.securitycontrol.common.core.domain.Result;
|
||||||
import com.securitycontrol.common.core.utils.JwtUtils;
|
import com.securitycontrol.common.core.utils.JwtUtils;
|
||||||
|
|
@ -42,6 +43,8 @@ public class TokenController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysLoginService sysLoginService;
|
private SysLoginService sysLoginService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysRecordLogService recordLogService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -66,6 +69,7 @@ public class TokenController {
|
||||||
Integer userId = (Integer) claims.get(SecurityConstants.DETAILS_USER_ID);
|
Integer userId = (Integer) claims.get(SecurityConstants.DETAILS_USER_ID);
|
||||||
String iscUser = (String) claims.get(SecurityConstants.DETAILS_ISC_USER_ID);
|
String iscUser = (String) claims.get(SecurityConstants.DETAILS_ISC_USER_ID);
|
||||||
String userName = (String) claims.get(SecurityConstants.DETAILS_USERNAME);
|
String userName = (String) claims.get(SecurityConstants.DETAILS_USERNAME);
|
||||||
|
recordLogService.recordLogininfor(userName,Long.valueOf(userId + ""),"用户登出",null,2);
|
||||||
redisUtil.delete("token:" + jwtToken);
|
redisUtil.delete("token:" + jwtToken);
|
||||||
redisUtil.delete("userId:" + userId);
|
redisUtil.delete("userId:" + userId);
|
||||||
redisUtil.delete("ISCUserId:" + iscUser);
|
redisUtil.delete("ISCUserId:" + iscUser);
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ public class SysLoginService
|
||||||
// 用户名或密码为空 错误
|
// 用户名或密码为空 错误
|
||||||
if (StringUtils.isAnyBlank(username, password))
|
if (StringUtils.isAnyBlank(username, password))
|
||||||
{
|
{
|
||||||
|
recordLogService.recordLogininfor(username,null,"用户登录","用户/密码不能为空",1);
|
||||||
throw new ServiceException("用户/密码不能为空",201);
|
throw new ServiceException("用户/密码不能为空",201);
|
||||||
}
|
}
|
||||||
// 查询用户信息
|
// 查询用户信息
|
||||||
|
|
@ -46,35 +47,39 @@ public class SysLoginService
|
||||||
|
|
||||||
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
|
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
|
||||||
{
|
{
|
||||||
|
recordLogService.recordLogininfor(username,null,"用户登录","登录用户:" + username + " 不存在",1);
|
||||||
throw new ServiceException("登录用户:" + username + " 不存在",201);
|
throw new ServiceException("登录用户:" + username + " 不存在",201);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Result.FAIL == userResult.getCode())
|
if (Result.FAIL == userResult.getCode())
|
||||||
{
|
{
|
||||||
|
recordLogService.recordLogininfor(username,null,"用户登录",userResult.getMsg(),1);
|
||||||
throw new ServiceException(userResult.getMsg());
|
throw new ServiceException(userResult.getMsg());
|
||||||
}
|
}
|
||||||
LoginUser userInfo = userResult.getData();
|
LoginUser userInfo = userResult.getData();
|
||||||
SysUser user = userResult.getData().getSysUser();
|
SysUser user = userResult.getData().getSysUser();
|
||||||
if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
|
if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
|
||||||
{
|
{
|
||||||
|
recordLogService.recordLogininfor(username,null,"用户登录","对不起,您的账号:" + username + " 已被删除",1);
|
||||||
throw new ServiceException("对不起,您的账号:" + username + " 已被删除",201);
|
throw new ServiceException("对不起,您的账号:" + username + " 已被删除",201);
|
||||||
}
|
}
|
||||||
if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
|
if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
|
||||||
{
|
{
|
||||||
|
recordLogService.recordLogininfor(username,null,"用户登录","对不起,您的账号:" + username + " 已锁定",1);
|
||||||
throw new ServiceException("对不起,您的账号:" + username + " 已锁定",201);
|
throw new ServiceException("对不起,您的账号:" + username + " 已锁定",201);
|
||||||
}
|
}
|
||||||
passwordService.validate(user, password);
|
passwordService.validate(user, password);
|
||||||
Result<List<SysMenu>> menu = remoteUserService.getAllMenuList(user.getUserId()+"", SecurityConstants.INNER);
|
Result<List<SysMenu>> menu = remoteUserService.getAllMenuList(user.getUserId()+"", SecurityConstants.INNER);
|
||||||
list=menu.getData();
|
list=menu.getData();
|
||||||
userInfo.getSysUser().setMenus(list);
|
userInfo.getSysUser().setMenus(list);
|
||||||
recordLogService.recordLogininfor(username, "用户登录", "系统登录");
|
recordLogService.recordLogininfor(username,null, "用户登录", null,1);
|
||||||
remoteUserService.updateUserLogin(user.getUserId(),SecurityConstants.INNER);
|
remoteUserService.updateUserLogin(user.getUserId(),SecurityConstants.INNER);
|
||||||
return userInfo;
|
return userInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void logout(String loginName)
|
public void logout(String loginName)
|
||||||
{
|
{
|
||||||
recordLogService.recordLogininfor(loginName, "用户登出", "退出登录");
|
recordLogService.recordLogininfor(loginName,null, "用户登出", null,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ public class SysPasswordService
|
||||||
}
|
}
|
||||||
if (!matches(user, password)) {
|
if (!matches(user, password)) {
|
||||||
retryCount = retryCount + 1;
|
retryCount = retryCount + 1;
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount));
|
recordLogService.recordLogininfor(username,user.getUserId(),"用户登录", String.format("密码输入错误%s次", retryCount),1);
|
||||||
redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
|
redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
|
||||||
throw new ServiceException("用户不存在/密码错误",201);
|
throw new ServiceException("用户不存在/密码错误",201);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,18 @@
|
||||||
package com.securitycontrol.auth.service;
|
package com.securitycontrol.auth.service;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.securitycontrol.common.core.constant.SecurityConstants;
|
||||||
|
import com.securitycontrol.common.core.utils.ServletUtils;
|
||||||
import com.securitycontrol.common.core.utils.aes.DateTimeHelper;
|
import com.securitycontrol.common.core.utils.aes.DateTimeHelper;
|
||||||
|
import com.securitycontrol.common.core.utils.ip.IpUtils;
|
||||||
import com.securitycontrol.common.security.utils.SecurityUtils;
|
import com.securitycontrol.common.security.utils.SecurityUtils;
|
||||||
import com.securitycontrol.system.api.domain.SysOperLog;
|
import com.securitycontrol.system.api.RemoteLogService;
|
||||||
|
import com.securitycontrol.system.api.domain.SysLog;
|
||||||
import com.securitycontrol.system.api.domain.SysUser;
|
import com.securitycontrol.system.api.domain.SysUser;
|
||||||
import com.securitycontrol.system.api.model.LoginUser;
|
import com.securitycontrol.system.api.model.LoginUser;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import com.securitycontrol.common.core.constant.Constants;
|
|
||||||
import com.securitycontrol.common.core.constant.SecurityConstants;
|
|
||||||
import com.securitycontrol.common.core.utils.ServletUtils;
|
|
||||||
import com.securitycontrol.common.core.utils.StringUtils;
|
|
||||||
import com.securitycontrol.common.core.utils.ip.IpUtils;
|
|
||||||
import com.securitycontrol.system.api.RemoteLogService;
|
|
||||||
import com.securitycontrol.system.api.domain.SysLogininfor;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录日志方法
|
* 记录日志方法
|
||||||
|
|
@ -31,32 +27,35 @@ public class SysRecordLogService {
|
||||||
/**
|
/**
|
||||||
* 记录登录信息
|
* 记录登录信息
|
||||||
*
|
*
|
||||||
* @param username 用户名
|
* @param username 用户名
|
||||||
* @param title 标题
|
* @param model 操作模块
|
||||||
* @param detail 详情
|
* @param detail 详情
|
||||||
|
* @param operaType 1.登录 2.登出
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public void recordLogininfor(String username, String title, String detail) {
|
public void recordLogininfor(String username, Long userId, String model, String detail, int operaType) {
|
||||||
SysOperLog sysOperLog = new SysOperLog();
|
SysLog sysLog = new SysLog();
|
||||||
sysOperLog.setGrade(title);
|
String id = UUID.randomUUID().toString().replaceAll("-", "");
|
||||||
sysOperLog.setTimes(DateTimeHelper.getNowTime());
|
sysLog.setLogId(id);
|
||||||
sysOperLog.setOperName(username);
|
sysLog.setOperTime(DateTimeHelper.getNowTime());
|
||||||
|
sysLog.setOperaUserName(username);
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
if (null != loginUser && null != loginUser.getSysUser()) {
|
if (null != loginUser && null != loginUser.getSysUser()) {
|
||||||
SysUser sysUser = loginUser.getSysUser();
|
SysUser sysUser = loginUser.getSysUser();
|
||||||
sysOperLog.setRoleName(sysUser.getRoleName());
|
sysLog.setUserId(sysUser.getUserId());
|
||||||
sysOperLog.setDeptName(sysUser.getOrgName());
|
|
||||||
}
|
}
|
||||||
sysOperLog.setOperIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
if(userId != null){
|
||||||
sysOperLog.setTitle(title);
|
sysLog.setUserId(userId);
|
||||||
sysOperLog.setRequestMethod("POST");
|
}
|
||||||
sysOperLog.setMethod("com.securitycontrol.auth.controller.login()");
|
sysLog.setIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
||||||
sysOperLog.setBusinessType(0);
|
sysLog.setModel(model);
|
||||||
sysOperLog.setOperUrl("/auth/login");
|
sysLog.setOperType(model);
|
||||||
sysOperLog.setOperParam(username);
|
sysLog.setOperateDetail(model);
|
||||||
sysOperLog.setDetail(detail);
|
sysLog.setMethod(operaType == 1 ? "com.securitycontrol.auth.controller.login()" : "com.securitycontrol.auth.controller.logout()");
|
||||||
sysOperLog.setLogType("系统日志");
|
sysLog.setResult(detail == null ? 0 : 1);
|
||||||
sysOperLog.setSysMenu("");
|
sysLog.setOperUri(operaType == 1 ? "/auth/login" : "/auth/logout");
|
||||||
remoteLogService.saveLogs(sysOperLog, SecurityConstants.INNER);
|
sysLog.setFailureReason(detail);
|
||||||
|
sysLog.setLogType(0);
|
||||||
|
remoteLogService.saveSysLog(sysLog, SecurityConstants.INNER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue