重构中
This commit is contained in:
parent
4dd5f7df3d
commit
e12e46c025
3
pom.xml
3
pom.xml
|
|
@ -46,7 +46,8 @@
|
||||||
<module>ruoyi-quartz</module>
|
<module>ruoyi-quartz</module>
|
||||||
<module>ruoyi-generator</module>
|
<module>ruoyi-generator</module>
|
||||||
<module>ruoyi-common</module>
|
<module>ruoyi-common</module>
|
||||||
</modules>
|
<module>ruoyi-exam</module>
|
||||||
|
</modules>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,13 +39,6 @@
|
||||||
<version>${swagger.version}</version>
|
<version>${swagger.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- 核心模块-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.ruoyi</groupId>
|
|
||||||
<artifactId>ruoyi-framework</artifactId>
|
|
||||||
<version>${ruoyi.version}</version>
|
|
||||||
|
|
||||||
</dependency>
|
|
||||||
<!-- 代码生成-->
|
<!-- 代码生成-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.enums.OnlineStatus;
|
import com.ruoyi.common.enums.OnlineStatus;
|
||||||
import com.ruoyi.framework.shiro.session.OnlineSession;
|
import com.ruoyi.framework.shiro.session.OnlineSession;
|
||||||
import com.ruoyi.framework.shiro.session.OnlineSessionDAO;
|
import com.ruoyi.framework.shiro.session.OnlineSessionDAO;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysUserOnline;
|
import com.ruoyi.system.domain.SysUserOnline;
|
||||||
import com.ruoyi.system.service.impl.SysUserOnlineServiceImpl;
|
import com.ruoyi.system.service.impl.SysUserOnlineServiceImpl;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysConfig;
|
import com.ruoyi.system.domain.SysConfig;
|
||||||
import com.ruoyi.system.service.ISysConfigService;
|
import com.ruoyi.system.service.ISysConfigService;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysDept;
|
import com.ruoyi.system.domain.SysDept;
|
||||||
import com.ruoyi.system.domain.SysRole;
|
import com.ruoyi.system.domain.SysRole;
|
||||||
import com.ruoyi.system.service.ISysDeptService;
|
import com.ruoyi.system.service.ISysDeptService;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysDictData;
|
import com.ruoyi.system.domain.SysDictData;
|
||||||
import com.ruoyi.system.service.ISysDictDataService;
|
import com.ruoyi.system.service.ISysDictDataService;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysDictType;
|
import com.ruoyi.system.domain.SysDictType;
|
||||||
import com.ruoyi.system.service.ISysDictTypeService;
|
import com.ruoyi.system.service.ISysDictTypeService;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
import com.ruoyi.framework.web.base.BaseController;
|
import com.ruoyi.framework.web.base.BaseController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysMenu;
|
import com.ruoyi.system.domain.SysMenu;
|
||||||
import com.ruoyi.system.domain.SysRole;
|
import com.ruoyi.system.domain.SysRole;
|
||||||
import com.ruoyi.system.service.ISysMenuService;
|
import com.ruoyi.system.service.ISysMenuService;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysNotice;
|
import com.ruoyi.system.domain.SysNotice;
|
||||||
import com.ruoyi.system.service.ISysNoticeService;
|
import com.ruoyi.system.service.ISysNoticeService;
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysPost;
|
import com.ruoyi.system.domain.SysPost;
|
||||||
import com.ruoyi.system.service.ISysPostService;
|
import com.ruoyi.system.service.ISysPostService;
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.config.Global;
|
import com.ruoyi.common.config.Global;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
||||||
import com.ruoyi.framework.util.FileUploadUtils;
|
import com.ruoyi.framework.web.util.FileUploadUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
import com.ruoyi.system.service.ISysDictDataService;
|
import com.ruoyi.system.service.ISysDictDataService;
|
||||||
import com.ruoyi.system.service.ISysUserService;
|
import com.ruoyi.system.service.ISysUserService;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysRole;
|
import com.ruoyi.system.domain.SysRole;
|
||||||
import com.ruoyi.system.service.ISysRoleService;
|
import com.ruoyi.system.service.ISysRoleService;
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
import com.ruoyi.system.service.ISysPostService;
|
import com.ruoyi.system.service.ISysPostService;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>ruoyi</artifactId>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<version>3.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>ruoyi-exam</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-framework</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
||||||
|
|
@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
|
||||||
import com.ruoyi.common.annotation.DataScope;
|
import com.ruoyi.common.annotation.DataScope;
|
||||||
import com.ruoyi.common.base.BaseEntity;
|
import com.ruoyi.common.base.BaseEntity;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysRole;
|
import com.ruoyi.system.domain.SysRole;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ import com.ruoyi.common.json.JSON;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
import com.ruoyi.framework.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysOperLog;
|
import com.ruoyi.system.domain.SysOperLog;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@ import org.slf4j.LoggerFactory;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.utils.AddressUtils;
|
import com.ruoyi.common.utils.AddressUtils;
|
||||||
import com.ruoyi.framework.shiro.session.OnlineSession;
|
import com.ruoyi.framework.shiro.session.OnlineSession;
|
||||||
import com.ruoyi.framework.util.LogUtils;
|
import com.ruoyi.framework.web.util.LogUtils;
|
||||||
import com.ruoyi.framework.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.util.SpringUtils;
|
import com.ruoyi.framework.web.util.SpringUtils;
|
||||||
import com.ruoyi.system.domain.SysLogininfor;
|
import com.ruoyi.system.domain.SysLogininfor;
|
||||||
import com.ruoyi.system.domain.SysOperLog;
|
import com.ruoyi.system.domain.SysOperLog;
|
||||||
import com.ruoyi.system.domain.SysUserOnline;
|
import com.ruoyi.system.domain.SysUserOnline;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.ruoyi.framework.shiro.service.SysLoginService;
|
import com.ruoyi.framework.shiro.service.SysLoginService;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.exception.user.CaptchaException;
|
import com.ruoyi.framework.web.exception.user.CaptchaException;
|
||||||
import com.ruoyi.framework.web.exception.user.RoleBlockedException;
|
import com.ruoyi.framework.web.exception.user.RoleBlockedException;
|
||||||
import com.ruoyi.framework.web.exception.user.UserBlockedException;
|
import com.ruoyi.framework.web.exception.user.UserBlockedException;
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ import com.ruoyi.common.enums.UserStatus;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
import com.ruoyi.framework.util.MessageUtils;
|
import com.ruoyi.framework.web.util.MessageUtils;
|
||||||
import com.ruoyi.framework.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.exception.user.CaptchaException;
|
import com.ruoyi.framework.web.exception.user.CaptchaException;
|
||||||
import com.ruoyi.framework.web.exception.user.UserBlockedException;
|
import com.ruoyi.framework.web.exception.user.UserBlockedException;
|
||||||
import com.ruoyi.framework.web.exception.user.UserDeleteException;
|
import com.ruoyi.framework.web.exception.user.UserDeleteException;
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
import com.ruoyi.framework.util.MessageUtils;
|
import com.ruoyi.framework.web.util.MessageUtils;
|
||||||
import com.ruoyi.framework.web.exception.user.UserPasswordNotMatchException;
|
import com.ruoyi.framework.web.exception.user.UserPasswordNotMatchException;
|
||||||
import com.ruoyi.framework.web.exception.user.UserPasswordRetryLimitExceedException;
|
import com.ruoyi.framework.web.exception.user.UserPasswordRetryLimitExceedException;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import org.apache.shiro.session.mgt.SessionFactory;
|
||||||
import org.apache.shiro.web.session.mgt.WebSessionContext;
|
import org.apache.shiro.web.session.mgt.WebSessionContext;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import com.ruoyi.common.utils.IpUtils;
|
import com.ruoyi.common.utils.IpUtils;
|
||||||
import com.ruoyi.framework.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
import eu.bitwalker.useragentutils.UserAgent;
|
import eu.bitwalker.useragentutils.UserAgent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
import com.ruoyi.framework.util.MessageUtils;
|
import com.ruoyi.framework.web.util.MessageUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退出过滤器
|
* 退出过滤器
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import org.apache.shiro.web.filter.AccessControlFilter;
|
||||||
import com.google.code.kaptcha.Constants;
|
import com.google.code.kaptcha.Constants;
|
||||||
import com.ruoyi.common.constant.ShiroConstants;
|
import com.ruoyi.common.constant.ShiroConstants;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证码过滤器
|
* 验证码过滤器
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import com.ruoyi.common.constant.ShiroConstants;
|
||||||
import com.ruoyi.common.enums.OnlineStatus;
|
import com.ruoyi.common.enums.OnlineStatus;
|
||||||
import com.ruoyi.framework.shiro.session.OnlineSession;
|
import com.ruoyi.framework.shiro.session.OnlineSession;
|
||||||
import com.ruoyi.framework.shiro.session.OnlineSessionDAO;
|
import com.ruoyi.framework.shiro.session.OnlineSessionDAO;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import com.ruoyi.common.constant.ShiroConstants;
|
import com.ruoyi.common.constant.ShiroConstants;
|
||||||
import com.ruoyi.framework.shiro.session.OnlineSession;
|
import com.ruoyi.framework.shiro.session.OnlineSession;
|
||||||
import com.ruoyi.framework.util.SpringUtils;
|
import com.ruoyi.framework.web.util.SpringUtils;
|
||||||
import com.ruoyi.system.domain.SysUserOnline;
|
import com.ruoyi.system.domain.SysUserOnline;
|
||||||
import com.ruoyi.system.service.ISysUserOnlineService;
|
import com.ruoyi.system.service.ISysUserOnlineService;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package com.ruoyi.framework.web.base;
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.EntityUtils;
|
import com.ruoyi.framework.web.util.EntityUtils;
|
||||||
import com.ruoyi.framework.web.page.PageDomain;
|
import com.ruoyi.framework.web.page.PageDomain;
|
||||||
import com.ruoyi.framework.web.page.TableSupport;
|
import com.ruoyi.framework.web.page.TableSupport;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.github.pagehelper.PageInfo;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
import org.springframework.web.bind.WebDataBinder;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.exception.DemoModeException;
|
import com.ruoyi.common.exception.DemoModeException;
|
||||||
import com.ruoyi.framework.util.PermissionUtils;
|
import com.ruoyi.framework.web.util.PermissionUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义异常处理器
|
* 自定义异常处理器
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.ruoyi.framework.web.exception.base;
|
package com.ruoyi.framework.web.exception.base;
|
||||||
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.MessageUtils;
|
import com.ruoyi.framework.web.util.MessageUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 基础异常
|
* 基础异常
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package com.ruoyi.framework.web.page;
|
package com.ruoyi.framework.web.page;
|
||||||
|
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.framework.util.ServletUtils;
|
import com.ruoyi.framework.web.util.ServletUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 表格数据处理
|
* 表格数据处理
|
||||||
|
|
|
||||||
|
|
@ -1,161 +1,161 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import org.apache.tomcat.util.http.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
import org.apache.tomcat.util.http.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import com.ruoyi.common.config.Global;
|
import com.ruoyi.common.config.Global;
|
||||||
import com.ruoyi.common.exception.file.FileNameLengthLimitExceededException;
|
import com.ruoyi.common.exception.file.FileNameLengthLimitExceededException;
|
||||||
import com.ruoyi.common.utils.Md5Utils;
|
import com.ruoyi.common.utils.Md5Utils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传工具类
|
* 文件上传工具类
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class FileUploadUtils
|
public class FileUploadUtils
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 默认大小 50M
|
* 默认大小 50M
|
||||||
*/
|
*/
|
||||||
public static final long DEFAULT_MAX_SIZE = 52428800;
|
public static final long DEFAULT_MAX_SIZE = 52428800;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认上传的地址
|
* 默认上传的地址
|
||||||
*/
|
*/
|
||||||
private static String defaultBaseDir = Global.getProfile();
|
private static String defaultBaseDir = Global.getProfile();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认的文件名最大长度
|
* 默认的文件名最大长度
|
||||||
*/
|
*/
|
||||||
public static final int DEFAULT_FILE_NAME_LENGTH = 200;
|
public static final int DEFAULT_FILE_NAME_LENGTH = 200;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认文件类型jpg
|
* 默认文件类型jpg
|
||||||
*/
|
*/
|
||||||
public static final String IMAGE_JPG_EXTENSION = ".jpg";
|
public static final String IMAGE_JPG_EXTENSION = ".jpg";
|
||||||
|
|
||||||
private static int counter = 0;
|
private static int counter = 0;
|
||||||
|
|
||||||
public static void setDefaultBaseDir(String defaultBaseDir)
|
public static void setDefaultBaseDir(String defaultBaseDir)
|
||||||
{
|
{
|
||||||
FileUploadUtils.defaultBaseDir = defaultBaseDir;
|
FileUploadUtils.defaultBaseDir = defaultBaseDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getDefaultBaseDir()
|
public static String getDefaultBaseDir()
|
||||||
{
|
{
|
||||||
return defaultBaseDir;
|
return defaultBaseDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 以默认配置进行文件上传
|
* 以默认配置进行文件上传
|
||||||
*
|
*
|
||||||
* @param file 上传的文件
|
* @param file 上传的文件
|
||||||
* @return 文件名称
|
* @return 文件名称
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public static final String upload(MultipartFile file) throws IOException
|
public static final String upload(MultipartFile file) throws IOException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return upload(getDefaultBaseDir(), file, FileUploadUtils.IMAGE_JPG_EXTENSION);
|
return upload(getDefaultBaseDir(), file, FileUploadUtils.IMAGE_JPG_EXTENSION);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
throw new IOException(e);
|
throw new IOException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据文件路径上传
|
* 根据文件路径上传
|
||||||
*
|
*
|
||||||
* @param baseDir 相对应用的基目录
|
* @param baseDir 相对应用的基目录
|
||||||
* @param file 上传的文件
|
* @param file 上传的文件
|
||||||
* @return 文件名称
|
* @return 文件名称
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public static final String upload(String baseDir, MultipartFile file) throws IOException
|
public static final String upload(String baseDir, MultipartFile file) throws IOException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return upload(baseDir, file, FileUploadUtils.IMAGE_JPG_EXTENSION);
|
return upload(baseDir, file, FileUploadUtils.IMAGE_JPG_EXTENSION);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
throw new IOException(e);
|
throw new IOException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传
|
* 文件上传
|
||||||
*
|
*
|
||||||
* @param baseDir 相对应用的基目录
|
* @param baseDir 相对应用的基目录
|
||||||
* @param file 上传的文件
|
* @param file 上传的文件
|
||||||
* @param needDatePathAndRandomName 是否需要日期目录和随机文件名前缀
|
* @param needDatePathAndRandomName 是否需要日期目录和随机文件名前缀
|
||||||
* @param extension 上传文件类型
|
* @param extension 上传文件类型
|
||||||
* @return 返回上传成功的文件名
|
* @return 返回上传成功的文件名
|
||||||
* @throws FileSizeLimitExceededException 如果超出最大大小
|
* @throws FileSizeLimitExceededException 如果超出最大大小
|
||||||
* @throws FileNameLengthLimitExceededException 文件名太长
|
* @throws FileNameLengthLimitExceededException 文件名太长
|
||||||
* @throws IOException 比如读写文件出错时
|
* @throws IOException 比如读写文件出错时
|
||||||
*/
|
*/
|
||||||
public static final String upload(String baseDir, MultipartFile file, String extension)
|
public static final String upload(String baseDir, MultipartFile file, String extension)
|
||||||
throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException
|
throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException
|
||||||
{
|
{
|
||||||
|
|
||||||
int fileNamelength = file.getOriginalFilename().length();
|
int fileNamelength = file.getOriginalFilename().length();
|
||||||
if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
|
if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH)
|
||||||
{
|
{
|
||||||
throw new FileNameLengthLimitExceededException(file.getOriginalFilename(), fileNamelength,
|
throw new FileNameLengthLimitExceededException(file.getOriginalFilename(), fileNamelength,
|
||||||
FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
|
FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
assertAllowed(file);
|
assertAllowed(file);
|
||||||
|
|
||||||
String fileName = encodingFilename(file.getOriginalFilename(), extension);
|
String fileName = encodingFilename(file.getOriginalFilename(), extension);
|
||||||
|
|
||||||
File desc = getAbsoluteFile(baseDir, baseDir + fileName);
|
File desc = getAbsoluteFile(baseDir, baseDir + fileName);
|
||||||
file.transferTo(desc);
|
file.transferTo(desc);
|
||||||
return fileName;
|
return fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final File getAbsoluteFile(String uploadDir, String filename) throws IOException
|
private static final File getAbsoluteFile(String uploadDir, String filename) throws IOException
|
||||||
{
|
{
|
||||||
File desc = new File(File.separator + filename);
|
File desc = new File(File.separator + filename);
|
||||||
|
|
||||||
if (!desc.getParentFile().exists())
|
if (!desc.getParentFile().exists())
|
||||||
{
|
{
|
||||||
desc.getParentFile().mkdirs();
|
desc.getParentFile().mkdirs();
|
||||||
}
|
}
|
||||||
if (!desc.exists())
|
if (!desc.exists())
|
||||||
{
|
{
|
||||||
desc.createNewFile();
|
desc.createNewFile();
|
||||||
}
|
}
|
||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编码文件名
|
* 编码文件名
|
||||||
*/
|
*/
|
||||||
private static final String encodingFilename(String filename, String extension)
|
private static final String encodingFilename(String filename, String extension)
|
||||||
{
|
{
|
||||||
filename = filename.replace("_", " ");
|
filename = filename.replace("_", " ");
|
||||||
filename = Md5Utils.hash(filename + System.nanoTime() + counter++) + extension;
|
filename = Md5Utils.hash(filename + System.nanoTime() + counter++) + extension;
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件大小校验
|
* 文件大小校验
|
||||||
*
|
*
|
||||||
* @param file 上传的文件
|
* @param file 上传的文件
|
||||||
* @return
|
* @return
|
||||||
* @throws FileSizeLimitExceededException 如果超出最大大小
|
* @throws FileSizeLimitExceededException 如果超出最大大小
|
||||||
*/
|
*/
|
||||||
public static final void assertAllowed(MultipartFile file) throws FileSizeLimitExceededException
|
public static final void assertAllowed(MultipartFile file) throws FileSizeLimitExceededException
|
||||||
{
|
{
|
||||||
long size = file.getSize();
|
long size = file.getSize();
|
||||||
if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE)
|
if (DEFAULT_MAX_SIZE != -1 && size > DEFAULT_MAX_SIZE)
|
||||||
{
|
{
|
||||||
throw new FileSizeLimitExceededException("not allowed upload upload", size, DEFAULT_MAX_SIZE);
|
throw new FileSizeLimitExceededException("not allowed upload upload", size, DEFAULT_MAX_SIZE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,136 +1,136 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import com.ruoyi.common.json.JSON;
|
import com.ruoyi.common.json.JSON;
|
||||||
import com.ruoyi.common.utils.IpUtils;
|
import com.ruoyi.common.utils.IpUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理并记录日志文件
|
* 处理并记录日志文件
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class LogUtils
|
public class LogUtils
|
||||||
{
|
{
|
||||||
public static final Logger ERROR_LOG = LoggerFactory.getLogger("sys-error");
|
public static final Logger ERROR_LOG = LoggerFactory.getLogger("sys-error");
|
||||||
public static final Logger ACCESS_LOG = LoggerFactory.getLogger("sys-access");
|
public static final Logger ACCESS_LOG = LoggerFactory.getLogger("sys-access");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录访问日志 [username][jsessionid][ip][accept][UserAgent][url][params][Referer]
|
* 记录访问日志 [username][jsessionid][ip][accept][UserAgent][url][params][Referer]
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public static void logAccess(HttpServletRequest request) throws Exception
|
public static void logAccess(HttpServletRequest request) throws Exception
|
||||||
{
|
{
|
||||||
String username = getUsername();
|
String username = getUsername();
|
||||||
String jsessionId = request.getRequestedSessionId();
|
String jsessionId = request.getRequestedSessionId();
|
||||||
String ip = IpUtils.getIpAddr(request);
|
String ip = IpUtils.getIpAddr(request);
|
||||||
String accept = request.getHeader("accept");
|
String accept = request.getHeader("accept");
|
||||||
String userAgent = request.getHeader("User-Agent");
|
String userAgent = request.getHeader("User-Agent");
|
||||||
String url = request.getRequestURI();
|
String url = request.getRequestURI();
|
||||||
String params = getParams(request);
|
String params = getParams(request);
|
||||||
|
|
||||||
StringBuilder s = new StringBuilder();
|
StringBuilder s = new StringBuilder();
|
||||||
s.append(getBlock(username));
|
s.append(getBlock(username));
|
||||||
s.append(getBlock(jsessionId));
|
s.append(getBlock(jsessionId));
|
||||||
s.append(getBlock(ip));
|
s.append(getBlock(ip));
|
||||||
s.append(getBlock(accept));
|
s.append(getBlock(accept));
|
||||||
s.append(getBlock(userAgent));
|
s.append(getBlock(userAgent));
|
||||||
s.append(getBlock(url));
|
s.append(getBlock(url));
|
||||||
s.append(getBlock(params));
|
s.append(getBlock(params));
|
||||||
s.append(getBlock(request.getHeader("Referer")));
|
s.append(getBlock(request.getHeader("Referer")));
|
||||||
getAccessLog().info(s.toString());
|
getAccessLog().info(s.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录异常错误 格式 [exception]
|
* 记录异常错误 格式 [exception]
|
||||||
*
|
*
|
||||||
* @param message
|
* @param message
|
||||||
* @param e
|
* @param e
|
||||||
*/
|
*/
|
||||||
public static void logError(String message, Throwable e)
|
public static void logError(String message, Throwable e)
|
||||||
{
|
{
|
||||||
String username = getUsername();
|
String username = getUsername();
|
||||||
StringBuilder s = new StringBuilder();
|
StringBuilder s = new StringBuilder();
|
||||||
s.append(getBlock("exception"));
|
s.append(getBlock("exception"));
|
||||||
s.append(getBlock(username));
|
s.append(getBlock(username));
|
||||||
s.append(getBlock(message));
|
s.append(getBlock(message));
|
||||||
ERROR_LOG.error(s.toString(), e);
|
ERROR_LOG.error(s.toString(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录页面错误 错误日志记录 [page/eception][username][statusCode][errorMessage][servletName][uri][exceptionName][ip][exception]
|
* 记录页面错误 错误日志记录 [page/eception][username][statusCode][errorMessage][servletName][uri][exceptionName][ip][exception]
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
public static void logPageError(HttpServletRequest request)
|
public static void logPageError(HttpServletRequest request)
|
||||||
{
|
{
|
||||||
String username = getUsername();
|
String username = getUsername();
|
||||||
|
|
||||||
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
|
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
|
||||||
String message = (String) request.getAttribute("javax.servlet.error.message");
|
String message = (String) request.getAttribute("javax.servlet.error.message");
|
||||||
String uri = (String) request.getAttribute("javax.servlet.error.request_uri");
|
String uri = (String) request.getAttribute("javax.servlet.error.request_uri");
|
||||||
Throwable t = (Throwable) request.getAttribute("javax.servlet.error.exception");
|
Throwable t = (Throwable) request.getAttribute("javax.servlet.error.exception");
|
||||||
|
|
||||||
if (statusCode == null)
|
if (statusCode == null)
|
||||||
{
|
{
|
||||||
statusCode = 0;
|
statusCode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder s = new StringBuilder();
|
StringBuilder s = new StringBuilder();
|
||||||
s.append(getBlock(t == null ? "page" : "exception"));
|
s.append(getBlock(t == null ? "page" : "exception"));
|
||||||
s.append(getBlock(username));
|
s.append(getBlock(username));
|
||||||
s.append(getBlock(statusCode));
|
s.append(getBlock(statusCode));
|
||||||
s.append(getBlock(message));
|
s.append(getBlock(message));
|
||||||
s.append(getBlock(IpUtils.getIpAddr(request)));
|
s.append(getBlock(IpUtils.getIpAddr(request)));
|
||||||
|
|
||||||
s.append(getBlock(uri));
|
s.append(getBlock(uri));
|
||||||
s.append(getBlock(request.getHeader("Referer")));
|
s.append(getBlock(request.getHeader("Referer")));
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
|
|
||||||
while (t != null)
|
while (t != null)
|
||||||
{
|
{
|
||||||
t.printStackTrace(new PrintWriter(sw));
|
t.printStackTrace(new PrintWriter(sw));
|
||||||
t = t.getCause();
|
t = t.getCause();
|
||||||
}
|
}
|
||||||
s.append(getBlock(sw.toString()));
|
s.append(getBlock(sw.toString()));
|
||||||
getErrorLog().error(s.toString());
|
getErrorLog().error(s.toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getBlock(Object msg)
|
public static String getBlock(Object msg)
|
||||||
{
|
{
|
||||||
if (msg == null)
|
if (msg == null)
|
||||||
{
|
{
|
||||||
msg = "";
|
msg = "";
|
||||||
}
|
}
|
||||||
return "[" + msg.toString() + "]";
|
return "[" + msg.toString() + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static String getParams(HttpServletRequest request) throws Exception
|
protected static String getParams(HttpServletRequest request) throws Exception
|
||||||
{
|
{
|
||||||
Map<String, String[]> params = request.getParameterMap();
|
Map<String, String[]> params = request.getParameterMap();
|
||||||
return JSON.marshal(params);
|
return JSON.marshal(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static String getUsername()
|
protected static String getUsername()
|
||||||
{
|
{
|
||||||
return (String) SecurityUtils.getSubject().getPrincipal();
|
return (String) SecurityUtils.getSubject().getPrincipal();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Logger getAccessLog()
|
public static Logger getAccessLog()
|
||||||
{
|
{
|
||||||
return ACCESS_LOG;
|
return ACCESS_LOG;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Logger getErrorLog()
|
public static Logger getErrorLog()
|
||||||
{
|
{
|
||||||
return ERROR_LOG;
|
return ERROR_LOG;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,24 +1,24 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import org.springframework.context.MessageSource;
|
import org.springframework.context.MessageSource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取i18n资源文件
|
* 获取i18n资源文件
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class MessageUtils
|
public class MessageUtils
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 根据消息键和参数 获取消息 委托给spring messageSource
|
* 根据消息键和参数 获取消息 委托给spring messageSource
|
||||||
*
|
*
|
||||||
* @param code 消息键
|
* @param code 消息键
|
||||||
* @param args 参数
|
* @param args 参数
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String message(String code, Object... args)
|
public static String message(String code, Object... args)
|
||||||
{
|
{
|
||||||
MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
|
MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
|
||||||
return messageSource.getMessage(code, args, null);
|
return messageSource.getMessage(code, args, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,46 +1,46 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import com.ruoyi.common.constant.PermissionConstants;
|
import com.ruoyi.common.constant.PermissionConstants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* permission 工具类
|
* permission 工具类
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class PermissionUtils
|
public class PermissionUtils
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 权限错误消息提醒
|
* 权限错误消息提醒
|
||||||
*
|
*
|
||||||
* @param errorMsg 错误信息
|
* @param errorMsg 错误信息
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String getMsg(String permissionsStr)
|
public static String getMsg(String permissionsStr)
|
||||||
{
|
{
|
||||||
String permission = StringUtils.substringBetween(permissionsStr, "[", "]");
|
String permission = StringUtils.substringBetween(permissionsStr, "[", "]");
|
||||||
String msg = MessageUtils.message("no.view.permission", permission);
|
String msg = MessageUtils.message("no.view.permission", permission);
|
||||||
if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.ADD_PERMISSION))
|
if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.ADD_PERMISSION))
|
||||||
{
|
{
|
||||||
msg = MessageUtils.message("no.create.permission", permission);
|
msg = MessageUtils.message("no.create.permission", permission);
|
||||||
}
|
}
|
||||||
else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EDIT_PERMISSION))
|
else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EDIT_PERMISSION))
|
||||||
{
|
{
|
||||||
msg = MessageUtils.message("no.update.permission", permission);
|
msg = MessageUtils.message("no.update.permission", permission);
|
||||||
}
|
}
|
||||||
else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.REMOVE_PERMISSION))
|
else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.REMOVE_PERMISSION))
|
||||||
{
|
{
|
||||||
msg = MessageUtils.message("no.delete.permission", permission);
|
msg = MessageUtils.message("no.delete.permission", permission);
|
||||||
}
|
}
|
||||||
else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EXPORT_PERMISSION))
|
else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EXPORT_PERMISSION))
|
||||||
{
|
{
|
||||||
msg = MessageUtils.message("no.export.permission", permission);
|
msg = MessageUtils.message("no.export.permission", permission);
|
||||||
}
|
}
|
||||||
else if (StringUtils.endsWithAny(permission,
|
else if (StringUtils.endsWithAny(permission,
|
||||||
new String[] { PermissionConstants.VIEW_PERMISSION, PermissionConstants.LIST_PERMISSION }))
|
new String[] { PermissionConstants.VIEW_PERMISSION, PermissionConstants.LIST_PERMISSION }))
|
||||||
{
|
{
|
||||||
msg = MessageUtils.message("no.view.permission", permission);
|
msg = MessageUtils.message("no.view.permission", permission);
|
||||||
}
|
}
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,101 +1,101 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
|
||||||
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
|
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* spring工具类 方便在非spring管理环境中获取bean
|
* spring工具类 方便在非spring管理环境中获取bean
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public final class SpringUtils implements BeanFactoryPostProcessor
|
public final class SpringUtils implements BeanFactoryPostProcessor
|
||||||
{
|
{
|
||||||
/** Spring应用上下文环境 */
|
/** Spring应用上下文环境 */
|
||||||
private static ConfigurableListableBeanFactory beanFactory;
|
private static ConfigurableListableBeanFactory beanFactory;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
|
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException
|
||||||
{
|
{
|
||||||
SpringUtils.beanFactory = beanFactory;
|
SpringUtils.beanFactory = beanFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取对象
|
* 获取对象
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* @return Object 一个以所给名字注册的bean的实例
|
* @return Object 一个以所给名字注册的bean的实例
|
||||||
* @throws org.springframework.beans.BeansException
|
* @throws org.springframework.beans.BeansException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static <T> T getBean(String name) throws BeansException
|
public static <T> T getBean(String name) throws BeansException
|
||||||
{
|
{
|
||||||
return (T) beanFactory.getBean(name);
|
return (T) beanFactory.getBean(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取类型为requiredType的对象
|
* 获取类型为requiredType的对象
|
||||||
*
|
*
|
||||||
* @param clz
|
* @param clz
|
||||||
* @return
|
* @return
|
||||||
* @throws org.springframework.beans.BeansException
|
* @throws org.springframework.beans.BeansException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static <T> T getBean(Class<T> clz) throws BeansException
|
public static <T> T getBean(Class<T> clz) throws BeansException
|
||||||
{
|
{
|
||||||
T result = (T) beanFactory.getBean(clz);
|
T result = (T) beanFactory.getBean(clz);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
|
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public static boolean containsBean(String name)
|
public static boolean containsBean(String name)
|
||||||
{
|
{
|
||||||
return beanFactory.containsBean(name);
|
return beanFactory.containsBean(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
|
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* @return boolean
|
* @return boolean
|
||||||
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
|
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException
|
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException
|
||||||
{
|
{
|
||||||
return beanFactory.isSingleton(name);
|
return beanFactory.isSingleton(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name
|
||||||
* @return Class 注册对象的类型
|
* @return Class 注册对象的类型
|
||||||
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
|
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException
|
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException
|
||||||
{
|
{
|
||||||
return beanFactory.getType(name);
|
return beanFactory.getType(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
|
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* @return
|
* @return
|
||||||
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
|
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException
|
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException
|
||||||
{
|
{
|
||||||
return beanFactory.getAliases(name);
|
return beanFactory.getAliases(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -28,12 +28,6 @@
|
||||||
<version>${velocity.version}</version>
|
<version>${velocity.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- 通用工具-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.ruoyi</groupId>
|
|
||||||
<artifactId>ruoyi-common</artifactId>
|
|
||||||
<version>${ruoyi.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
<artifactId>ruoyi-framework</artifactId>
|
<artifactId>ruoyi-framework</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import com.ruoyi.common.utils.ExcelUtil;
|
import com.ruoyi.common.utils.ExcelUtil;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.quartz.domain.SysJob;
|
import com.ruoyi.quartz.domain.SysJob;
|
||||||
import com.ruoyi.quartz.service.ISysJobService;
|
import com.ruoyi.quartz.service.ISysJobService;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ package com.ruoyi.framework.web.base;
|
||||||
|
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.EntityUtils;
|
import com.ruoyi.framework.web.util.EntityUtils;
|
||||||
import com.ruoyi.framework.web.page.PageDomain;
|
import com.ruoyi.framework.web.page.PageDomain;
|
||||||
import com.ruoyi.framework.web.page.TableSupport;
|
import com.ruoyi.framework.web.page.TableSupport;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import com.github.pagehelper.PageInfo;
|
||||||
import com.ruoyi.common.base.AjaxResult;
|
import com.ruoyi.common.base.AjaxResult;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.util.ShiroUtils;
|
import com.ruoyi.framework.web.util.ShiroUtils;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
import org.springframework.web.bind.WebDataBinder;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
|
@ -1,139 +1,139 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import com.ruoyi.common.support.Convert;
|
import com.ruoyi.common.support.Convert;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import org.springframework.web.context.request.RequestAttributes;
|
import org.springframework.web.context.request.RequestAttributes;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户端工具类
|
* 客户端工具类
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class ServletUtils
|
public class ServletUtils
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 获取String参数
|
* 获取String参数
|
||||||
*/
|
*/
|
||||||
public static String getParameter(String name)
|
public static String getParameter(String name)
|
||||||
{
|
{
|
||||||
return getRequest().getParameter(name);
|
return getRequest().getParameter(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取String参数
|
* 获取String参数
|
||||||
*/
|
*/
|
||||||
public static String getParameter(String name, String defaultValue)
|
public static String getParameter(String name, String defaultValue)
|
||||||
{
|
{
|
||||||
return Convert.toStr(getRequest().getParameter(name), defaultValue);
|
return Convert.toStr(getRequest().getParameter(name), defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取Integer参数
|
* 获取Integer参数
|
||||||
*/
|
*/
|
||||||
public static Integer getParameterToInt(String name)
|
public static Integer getParameterToInt(String name)
|
||||||
{
|
{
|
||||||
return Convert.toInt(getRequest().getParameter(name));
|
return Convert.toInt(getRequest().getParameter(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取Integer参数
|
* 获取Integer参数
|
||||||
*/
|
*/
|
||||||
public static Integer getParameterToInt(String name, Integer defaultValue)
|
public static Integer getParameterToInt(String name, Integer defaultValue)
|
||||||
{
|
{
|
||||||
return Convert.toInt(getRequest().getParameter(name), defaultValue);
|
return Convert.toInt(getRequest().getParameter(name), defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取request
|
* 获取request
|
||||||
*/
|
*/
|
||||||
public static HttpServletRequest getRequest()
|
public static HttpServletRequest getRequest()
|
||||||
{
|
{
|
||||||
return getRequestAttributes().getRequest();
|
return getRequestAttributes().getRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取response
|
* 获取response
|
||||||
*/
|
*/
|
||||||
public static HttpServletResponse getResponse()
|
public static HttpServletResponse getResponse()
|
||||||
{
|
{
|
||||||
return getRequestAttributes().getResponse();
|
return getRequestAttributes().getResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取session
|
* 获取session
|
||||||
*/
|
*/
|
||||||
public static HttpSession getSession()
|
public static HttpSession getSession()
|
||||||
{
|
{
|
||||||
return getRequest().getSession();
|
return getRequest().getSession();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ServletRequestAttributes getRequestAttributes()
|
public static ServletRequestAttributes getRequestAttributes()
|
||||||
{
|
{
|
||||||
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
|
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
|
||||||
return (ServletRequestAttributes) attributes;
|
return (ServletRequestAttributes) attributes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将字符串渲染到客户端
|
* 将字符串渲染到客户端
|
||||||
*
|
*
|
||||||
* @param response 渲染对象
|
* @param response 渲染对象
|
||||||
* @param string 待渲染的字符串
|
* @param string 待渲染的字符串
|
||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
public static String renderString(HttpServletResponse response, String string)
|
public static String renderString(HttpServletResponse response, String string)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
response.setContentType("application/json");
|
response.setContentType("application/json");
|
||||||
response.setCharacterEncoding("utf-8");
|
response.setCharacterEncoding("utf-8");
|
||||||
response.getWriter().print(string);
|
response.getWriter().print(string);
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是Ajax异步请求
|
* 是否是Ajax异步请求
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
public static boolean isAjaxRequest(HttpServletRequest request)
|
public static boolean isAjaxRequest(HttpServletRequest request)
|
||||||
{
|
{
|
||||||
|
|
||||||
String accept = request.getHeader("accept");
|
String accept = request.getHeader("accept");
|
||||||
if (accept != null && accept.indexOf("application/json") != -1)
|
if (accept != null && accept.indexOf("application/json") != -1)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String xRequestedWith = request.getHeader("X-Requested-With");
|
String xRequestedWith = request.getHeader("X-Requested-With");
|
||||||
if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1)
|
if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String uri = request.getRequestURI();
|
String uri = request.getRequestURI();
|
||||||
if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml"))
|
if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml"))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String ajax = request.getParameter("__ajax");
|
String ajax = request.getParameter("__ajax");
|
||||||
if (StringUtils.inStringIgnoreCase(ajax, "json", "xml"))
|
if (StringUtils.inStringIgnoreCase(ajax, "json", "xml"))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,96 +1,96 @@
|
||||||
package com.ruoyi.framework.util;
|
package com.ruoyi.framework.web.util;
|
||||||
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||||
import com.ruoyi.framework.shiro.realm.UserRealm;
|
import com.ruoyi.framework.shiro.realm.UserRealm;
|
||||||
import com.ruoyi.system.domain.SysUser;
|
import com.ruoyi.system.domain.SysUser;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.apache.shiro.crypto.SecureRandomNumberGenerator;
|
import org.apache.shiro.crypto.SecureRandomNumberGenerator;
|
||||||
import org.apache.shiro.mgt.RealmSecurityManager;
|
import org.apache.shiro.mgt.RealmSecurityManager;
|
||||||
import org.apache.shiro.session.Session;
|
import org.apache.shiro.session.Session;
|
||||||
import org.apache.shiro.subject.PrincipalCollection;
|
import org.apache.shiro.subject.PrincipalCollection;
|
||||||
import org.apache.shiro.subject.SimplePrincipalCollection;
|
import org.apache.shiro.subject.SimplePrincipalCollection;
|
||||||
import org.apache.shiro.subject.Subject;
|
import org.apache.shiro.subject.Subject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* shiro 工具类
|
* shiro 工具类
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class ShiroUtils
|
public class ShiroUtils
|
||||||
{
|
{
|
||||||
public static Subject getSubjct()
|
public static Subject getSubjct()
|
||||||
{
|
{
|
||||||
return SecurityUtils.getSubject();
|
return SecurityUtils.getSubject();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Session getSession()
|
public static Session getSession()
|
||||||
{
|
{
|
||||||
return SecurityUtils.getSubject().getSession();
|
return SecurityUtils.getSubject().getSession();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void logout()
|
public static void logout()
|
||||||
{
|
{
|
||||||
getSubjct().logout();
|
getSubjct().logout();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SysUser getSysUser()
|
public static SysUser getSysUser()
|
||||||
{
|
{
|
||||||
SysUser user = null;
|
SysUser user = null;
|
||||||
Object obj = getSubjct().getPrincipal();
|
Object obj = getSubjct().getPrincipal();
|
||||||
if (StringUtils.isNotNull(obj))
|
if (StringUtils.isNotNull(obj))
|
||||||
{
|
{
|
||||||
user = new SysUser();
|
user = new SysUser();
|
||||||
BeanUtils.copyBeanProp(user, obj);
|
BeanUtils.copyBeanProp(user, obj);
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setSysUser(SysUser user)
|
public static void setSysUser(SysUser user)
|
||||||
{
|
{
|
||||||
Subject subject = getSubjct();
|
Subject subject = getSubjct();
|
||||||
PrincipalCollection principalCollection = subject.getPrincipals();
|
PrincipalCollection principalCollection = subject.getPrincipals();
|
||||||
String realmName = principalCollection.getRealmNames().iterator().next();
|
String realmName = principalCollection.getRealmNames().iterator().next();
|
||||||
PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(user, realmName);
|
PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(user, realmName);
|
||||||
// 重新加载Principal
|
// 重新加载Principal
|
||||||
subject.runAs(newPrincipalCollection);
|
subject.runAs(newPrincipalCollection);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void clearCachedAuthorizationInfo()
|
public static void clearCachedAuthorizationInfo()
|
||||||
{
|
{
|
||||||
RealmSecurityManager rsm = (RealmSecurityManager) SecurityUtils.getSecurityManager();
|
RealmSecurityManager rsm = (RealmSecurityManager) SecurityUtils.getSecurityManager();
|
||||||
UserRealm realm = (UserRealm) rsm.getRealms().iterator().next();
|
UserRealm realm = (UserRealm) rsm.getRealms().iterator().next();
|
||||||
realm.clearCachedAuthorizationInfo();
|
realm.clearCachedAuthorizationInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Long getUserId()
|
public static Long getUserId()
|
||||||
{
|
{
|
||||||
return getSysUser().getUserId().longValue();
|
return getSysUser().getUserId().longValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getLoginName()
|
public static String getLoginName()
|
||||||
{
|
{
|
||||||
return getSysUser().getLoginName();
|
return getSysUser().getLoginName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getIp()
|
public static String getIp()
|
||||||
{
|
{
|
||||||
return getSubjct().getSession().getHost();
|
return getSubjct().getSession().getHost();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getSessionId()
|
public static String getSessionId()
|
||||||
{
|
{
|
||||||
return String.valueOf(getSubjct().getSession().getId());
|
return String.valueOf(getSubjct().getSession().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成随机盐
|
* 生成随机盐
|
||||||
*/
|
*/
|
||||||
public static String randomSalt()
|
public static String randomSalt()
|
||||||
{
|
{
|
||||||
// 一个Byte占两个字节,此处生成的3字节,字符串长度为6
|
// 一个Byte占两个字节,此处生成的3字节,字符串长度为6
|
||||||
SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator();
|
SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator();
|
||||||
String hex = secureRandom.nextBytes(3).toHex();
|
String hex = secureRandom.nextBytes(3).toHex();
|
||||||
return hex;
|
return hex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue