增加登录成功和注册成功及登出成功的日志,修复
This commit is contained in:
parent
c43a4fbf98
commit
8a123a2549
|
|
@ -36,7 +36,7 @@ public interface RemoteLogService
|
|||
//
|
||||
|
||||
/**
|
||||
* 保存系统日志
|
||||
* 保存日志
|
||||
*
|
||||
* @param sysLogsVo 日志实体
|
||||
* @param source 请求来源
|
||||
|
|
@ -56,7 +56,7 @@ public interface RemoteLogService
|
|||
@PostMapping("/operlog/getLogsModule")
|
||||
public Map<String,String> getLogsModule(@RequestBody SysLogsVo sysLogsVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception;
|
||||
/**
|
||||
* 保存访问记录
|
||||
* 保存登录日志
|
||||
*
|
||||
* @param sysLogininfor 访问实体
|
||||
* @param source 请求来源
|
||||
|
|
|
|||
|
|
@ -4,10 +4,7 @@ import com.bonus.auth.config.LoginType;
|
|||
import com.bonus.auth.factory.LoginStrategyFactory;
|
||||
import com.bonus.auth.form.LoginBody;
|
||||
import com.bonus.auth.form.RegisterBody;
|
||||
import com.bonus.auth.service.LoginStrategy;
|
||||
import com.bonus.auth.service.PasswordValidatorService;
|
||||
import com.bonus.auth.service.SysLoginService;
|
||||
import com.bonus.auth.service.SysPasswordService;
|
||||
import com.bonus.auth.service.*;
|
||||
import com.bonus.common.core.constant.SecurityConstants;
|
||||
import com.bonus.common.core.domain.R;
|
||||
import com.bonus.common.core.utils.JwtUtils;
|
||||
|
|
@ -16,6 +13,7 @@ import com.bonus.common.security.auth.AuthUtil;
|
|||
import com.bonus.common.security.service.TokenService;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.config.SystemConfig;
|
||||
import com.bonus.system.api.RemoteLogService;
|
||||
import com.bonus.system.api.RemoteUserService;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import com.bonus.system.api.model.LoginUser;
|
||||
|
|
@ -59,6 +57,9 @@ public class TokenController {
|
|||
@Autowired
|
||||
private PasswordValidatorService passwordValidatorService;
|
||||
|
||||
@Autowired
|
||||
private SysRecordLogService logService;
|
||||
|
||||
@PostMapping("isAdmin")
|
||||
public R<?> isAdmin(@RequestBody LoginBody form) {
|
||||
if (!config.isAdmin()) {
|
||||
|
|
@ -109,6 +110,7 @@ public class TokenController {
|
|||
form.setPassword(form.getVerificationCode());
|
||||
}
|
||||
LoginUser login = strategy.login(form.getUsername(), form.getPassword());
|
||||
logService.saveLogin(form.getUsername(), "登录", "登录成功", null, "成功");
|
||||
return R.ok(tokenService.createToken(login));
|
||||
|
||||
}
|
||||
|
|
@ -143,6 +145,7 @@ public class TokenController {
|
|||
AuthUtil.logoutByToken(token);
|
||||
tokenService.delExistingToken(Long.valueOf(userId));
|
||||
sysLoginService.logout(username, userId);
|
||||
logService.saveLogout(username, "退出登录", "退出成功", userId, "成功");
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
|
@ -182,6 +185,7 @@ public class TokenController {
|
|||
@PostMapping("register")
|
||||
public R<?> register(@RequestBody RegisterBody registerBody) {
|
||||
sysLoginService.register(registerBody);
|
||||
logService.saveRegister(registerBody.getUsername(), "注册", "注册成功", null, "成功");
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.alibaba.nacos.common.utils.UuidUtils;
|
|||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.utils.global.SystemGlobal;
|
||||
import com.bonus.common.log.enums.OperaResult;
|
||||
import com.bonus.common.log.enums.OperaType;
|
||||
import com.bonus.system.api.domain.SysLogsVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -70,13 +71,13 @@ public class SysRecordLogService
|
|||
sysLogsVo.setLogId(uuid);
|
||||
sysLogsVo.setOperaUserName(username);
|
||||
sysLogsVo.setIp(IpUtils.getIpAddr());
|
||||
sysLogsVo.setModel("系统登录");
|
||||
sysLogsVo.setModel("系统认证模块");
|
||||
sysLogsVo.setOperTime(DateUtils.getTime());
|
||||
sysLogsVo.setMethodType(SystemGlobal.POST);
|
||||
sysLogsVo.setMethod("login()");
|
||||
sysLogsVo.setParams("{\"username\":\""+username+"\"}");
|
||||
sysLogsVo.setOperateDetail("用户登录系统");
|
||||
sysLogsVo.setOperType("登录");
|
||||
sysLogsVo.setOperType(OperaType.LOGIN);
|
||||
sysLogsVo.setOperUri("/login");
|
||||
sysLogsVo.setLogType(0);
|
||||
if (StringUtils.isNotEmpty(result)){
|
||||
|
|
@ -120,7 +121,7 @@ public class SysRecordLogService
|
|||
}
|
||||
sysLogsVo.setResultData("用户登录成功");
|
||||
sysLogsVo.setTitle("系统登录");
|
||||
sysLogsVo.setModel("系统登录");
|
||||
sysLogsVo.setModel("系统认证模块");
|
||||
sysLogsVo.setOperTime(DateUtils.getTime());
|
||||
sysLogsVo.setMethodType(SystemGlobal.POST);
|
||||
sysLogsVo.setMethod("login()");
|
||||
|
|
@ -139,7 +140,7 @@ public class SysRecordLogService
|
|||
}
|
||||
}
|
||||
/**
|
||||
* 记录登录信息
|
||||
* 记录登出信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param
|
||||
|
|
@ -152,7 +153,7 @@ public class SysRecordLogService
|
|||
sysLogsVo.setLogId(uuid);
|
||||
sysLogsVo.setOperaUserName(username);
|
||||
sysLogsVo.setIp(IpUtils.getIpAddr());
|
||||
sysLogsVo.setModel("退出登录");
|
||||
sysLogsVo.setModel("系统认证模块");
|
||||
sysLogsVo.setLogType(0);
|
||||
if (StringUtils.isNotEmpty(userId)){
|
||||
sysLogsVo.setUserId(userId);
|
||||
|
|
@ -178,4 +179,78 @@ public class SysRecordLogService
|
|||
log.error(e.toString(),e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录登录信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param
|
||||
* @param message 消息内容
|
||||
* @return
|
||||
*/
|
||||
public void saveLogin(String username, String message,String resultData,String userId,String result) {
|
||||
SysLogsVo sysLogsVo = new SysLogsVo();
|
||||
String uuid= UUID.randomUUID().toString().replace("-","").toUpperCase();
|
||||
sysLogsVo.setLogId(uuid);
|
||||
sysLogsVo.setOperaUserName(username);
|
||||
sysLogsVo.setIp(IpUtils.getIpAddr());
|
||||
sysLogsVo.setModel("系统认证模块");
|
||||
sysLogsVo.setLogType(0);
|
||||
if (StringUtils.isNotEmpty(userId)){
|
||||
sysLogsVo.setUserId(userId);
|
||||
}
|
||||
sysLogsVo.setOperTime(DateUtils.getTime());
|
||||
sysLogsVo.setMethodType(SystemGlobal.POST);
|
||||
sysLogsVo.setMethod("login()");
|
||||
sysLogsVo.setParams("{\"username\":\""+username+"\"}");
|
||||
sysLogsVo.setOperateDetail("用户登录");
|
||||
sysLogsVo.setOperType(OperaType.LOGIN);
|
||||
sysLogsVo.setOperUri("/login");
|
||||
if (StringUtils.isNotEmpty(result)){
|
||||
sysLogsVo.setResult(result);
|
||||
}else{
|
||||
sysLogsVo.setResult(OperaResult.SUCCESS);
|
||||
}
|
||||
sysLogsVo.setFailureReason(message);
|
||||
sysLogsVo.setTitle("登录");
|
||||
sysLogsVo.setResultData(resultData);
|
||||
try{
|
||||
remoteLogService.addLogs(sysLogsVo, SecurityConstants.INNER);
|
||||
}catch (Exception e){
|
||||
log.error(e.toString(),e);
|
||||
}
|
||||
}
|
||||
|
||||
public void saveRegister(String username, String message,String resultData,String userId,String result) {
|
||||
SysLogsVo sysLogsVo = new SysLogsVo();
|
||||
String uuid= UUID.randomUUID().toString().replace("-","").toUpperCase();
|
||||
sysLogsVo.setLogId(uuid);
|
||||
sysLogsVo.setOperaUserName(username);
|
||||
sysLogsVo.setIp(IpUtils.getIpAddr());
|
||||
sysLogsVo.setModel("系统认证模块");
|
||||
sysLogsVo.setLogType(0);
|
||||
if (StringUtils.isNotEmpty(userId)){
|
||||
sysLogsVo.setUserId(userId);
|
||||
}
|
||||
sysLogsVo.setOperTime(DateUtils.getTime());
|
||||
sysLogsVo.setMethodType(SystemGlobal.POST);
|
||||
sysLogsVo.setMethod("register()");
|
||||
sysLogsVo.setParams("{\"username\":\""+username+"\"}");
|
||||
sysLogsVo.setOperateDetail("用户注册");
|
||||
sysLogsVo.setOperType(OperaType.REGISTER);
|
||||
sysLogsVo.setOperUri("/register");
|
||||
if (StringUtils.isNotEmpty(result)){
|
||||
sysLogsVo.setResult(result);
|
||||
}else{
|
||||
sysLogsVo.setResult(OperaResult.SUCCESS);
|
||||
}
|
||||
sysLogsVo.setFailureReason(message);
|
||||
sysLogsVo.setTitle("注册");
|
||||
sysLogsVo.setResultData(resultData);
|
||||
try{
|
||||
remoteLogService.addLogs(sysLogsVo, SecurityConstants.INNER);
|
||||
}catch (Exception e){
|
||||
log.error(e.toString(),e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ public class StringUtilsTest {
|
|||
public void testSplit() {
|
||||
assertArrayEquals(new String[0], StringUtils.split(null, ","));
|
||||
assertArrayEquals(new String[]{"a", "b", "c"}, StringUtils.split("a,b,c", ","));
|
||||
assertArrayEquals(new String[]{"a", "b", "c"}, StringUtils.split("a.b.c", "\\."));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -52,4 +52,11 @@ public class OperaType {
|
|||
* 其他
|
||||
*/
|
||||
public final static String FLASH="刷新";
|
||||
|
||||
public final static String LOGIN="登录";
|
||||
|
||||
public final static String LOGOUT="登出";
|
||||
|
||||
public final static String REGISTER="注册";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
|
|||
public class ParamSecureHandler implements AsyncHandlerInterceptor {
|
||||
|
||||
private static final String [] WHITE_URL = {
|
||||
"/login", "/isAdmin", "/isLogin", "/register","/operlog/addLogs","/job"};
|
||||
"/login", "/isAdmin", "/isLogin" ,"/register","/user/register","/operlog/addLogs","/job/edit","/user/resetPwd","/user/profile/updatePwd'"};
|
||||
private String rnd = null;
|
||||
|
||||
public static String ur = "/";
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ public class ScheduleUtils
|
|||
{
|
||||
return StringUtils.containsAnyIgnoreCase(invokeTarget, Constants.JOB_WHITELIST_STR);
|
||||
}
|
||||
Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, ".")[0]);
|
||||
Object obj = SpringUtils.getBean(StringUtils.split(invokeTarget, "\\.")[0]);
|
||||
String beanPackageName = obj.getClass().getPackage().getName();
|
||||
return StringUtils.containsAnyIgnoreCase(beanPackageName, Constants.JOB_WHITELIST_STR)
|
||||
&& !StringUtils.containsAnyIgnoreCase(beanPackageName, Constants.JOB_ERROR_STR);
|
||||
|
|
|
|||
|
|
@ -53,12 +53,21 @@ public class SysLogController extends BaseController {
|
|||
// @Value("${sql.filePath}")
|
||||
// private String filePath;
|
||||
|
||||
/**
|
||||
* 保存系统日志,业务日志和其他日常日志
|
||||
* @param sysLog 日志对象
|
||||
*/
|
||||
@ApiOperation(value = "保存系统日志")
|
||||
@PostMapping("saveLogs")
|
||||
public AjaxResult saveLogs(@RequestBody SysLogsVo sysLog) {
|
||||
return service.saveLogs(sysLog);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存越权日志
|
||||
* @param sysLog
|
||||
* @param request
|
||||
*/
|
||||
@PostMapping("addLogs")
|
||||
public void addLogs(@RequestBody SysLogsVo sysLog,HttpServletRequest request) {
|
||||
service.saveLogs(sysLog,request);
|
||||
|
|
@ -84,7 +93,7 @@ public class SysLogController extends BaseController {
|
|||
|
||||
@ApiOperation(value = "查询业务日志")
|
||||
@GetMapping("getYwLogs")
|
||||
@SysLog(title = "审计日志", module = "审计日志->业务日志", businessType = OperaType.QUERY, details = "查询业务日志列表", type = "系统日志")
|
||||
@SysLog(title = "审计日志", module = "审计日志->业务日志", businessType = OperaType.QUERY, details = "查询业务日志列表", type = "系统日志",logType = 0)
|
||||
public TableDataInfo getYwLogs(SysLogsVo dto) {
|
||||
try{
|
||||
dto.setLogType(1);
|
||||
|
|
@ -99,7 +108,7 @@ public class SysLogController extends BaseController {
|
|||
|
||||
@ApiOperation(value = "查询异常日志")
|
||||
@GetMapping("getErrLogs")
|
||||
@SysLog(title = "审计日志", module = "审计日志->异常日志", businessType = OperaType.QUERY, details = "查询系统异常日志", type = "系统日志")
|
||||
@SysLog(title = "审计日志", module = "审计日志->异常日志", businessType = OperaType.QUERY ,logType = 0,details = "查询系统异常日志", type = "系统日志")
|
||||
public TableDataInfo getErrLogs(SysLogsVo dto) {
|
||||
try{
|
||||
dto.setLogType(2);
|
||||
|
|
@ -113,7 +122,7 @@ public class SysLogController extends BaseController {
|
|||
}
|
||||
@ApiOperation(value = "日志备份")
|
||||
@GetMapping("downloadErrLogs")
|
||||
@SysLog(title = "审计日志", module = "审计日志->异常日志", businessType = OperaType.COPY_LOG, details = "异常日志备份", type = "系统日志")
|
||||
@SysLog(title = "审计日志", module = "审计日志->异常日志", businessType = OperaType.COPY_LOG, logType = 0, details = "异常日志备份", type = "系统日志")
|
||||
public void downloadErrLogs(HttpServletRequest request, HttpServletResponse response) {
|
||||
// try {
|
||||
// String dateTimeNow=exportSqlService.export("2");
|
||||
|
|
@ -126,7 +135,7 @@ public class SysLogController extends BaseController {
|
|||
|
||||
@ApiOperation(value = "日志备份")
|
||||
@GetMapping("downloadYwLogs")
|
||||
@SysLog(title = "审计日志", module = "审计日志-->业务日志", businessType = OperaType.COPY_LOG, details = "业务日志备份", type = "系统日志")
|
||||
@SysLog(title = "审计日志", module = "审计日志-->业务日志", businessType = OperaType.COPY_LOG,logType = 0, details = "业务日志备份", type = "系统日志")
|
||||
public void downloadYwLogs(HttpServletRequest request, HttpServletResponse response) {
|
||||
// try {
|
||||
// String dateTimeNow=exportSqlService.export("1");
|
||||
|
|
|
|||
Loading…
Reference in New Issue