刘力
3 years ago
40 changed files with 94 additions and 649 deletions
-
87common/pom.xml
-
19common/src/main/java/com/canvas/web/service/IUplpadService.java
-
30common/src/main/java/com/canvas/web/service/impl/UploadServiceImpl.java
-
305common/src/main/java/com/canvas/web/utils/UploadUtils.java
-
52generator/pom.xml
-
18pom.xml
-
35quartz/pom.xml
-
43queue/pom.xml
-
1system/pom.xml
-
2system/src/main/java/com/canvas/web/AppRun.java
-
6system/src/main/java/com/canvas/web/modules/config/ConfigBeanConfiguration.java
-
13system/src/main/java/com/canvas/web/modules/config/SpringSecurityConfig.java
-
2system/src/main/java/com/canvas/web/modules/config/bean/LoginCode.java
-
2system/src/main/java/com/canvas/web/modules/config/bean/LoginCodeEnum.java
-
3system/src/main/java/com/canvas/web/modules/config/bean/LoginProperties.java
-
3system/src/main/java/com/canvas/web/modules/config/bean/SecurityProperties.java
-
14system/src/main/java/com/canvas/web/modules/controller/AuthorizationController.java
-
15system/src/main/java/com/canvas/web/modules/controller/OnlineController.java
-
2system/src/main/java/com/canvas/web/modules/security/JwtAccessDeniedHandler.java
-
2system/src/main/java/com/canvas/web/modules/security/JwtAuthenticationEntryPoint.java
-
3system/src/main/java/com/canvas/web/modules/security/SecurityProperties.java
-
6system/src/main/java/com/canvas/web/modules/security/TokenConfigurer.java
-
2system/src/main/java/com/canvas/web/modules/security/TokenProvider.java
-
9system/src/main/java/com/canvas/web/modules/service/OnlineUserService.java
-
2system/src/main/java/com/canvas/web/modules/service/UserCacheClean.java
-
14system/src/main/java/com/canvas/web/modules/service/UserDetailsServiceImpl.java
-
2system/src/main/java/com/canvas/web/modules/service/dto/AuthUserDto.java
-
4system/src/main/java/com/canvas/web/modules/service/dto/JwtUserDto.java
-
2system/src/main/java/com/canvas/web/modules/service/dto/OnlineUserDto.java
-
4system/src/main/java/com/canvas/web/modules/system/service/DataService.java
-
4system/src/main/java/com/canvas/web/modules/system/service/RoleService.java
-
6system/src/main/java/com/canvas/web/modules/system/service/UserService.java
-
2system/src/main/java/com/canvas/web/modules/system/service/dto/MenuDto.java
-
2system/src/main/java/com/canvas/web/modules/system/service/dto/RoleDto.java
-
2system/src/main/java/com/canvas/web/modules/system/service/dto/RoleSmallDto.java
-
2system/src/main/java/com/canvas/web/modules/system/service/dto/UserDto.java
-
2system/src/main/java/com/canvas/web/modules/system/service/dto/UserQueryCriteria.java
-
16system/src/main/resources/banner.txt
-
2system/src/main/resources/config/application-dev.yml
-
3system/src/main/resources/config/application.yml
@ -1,19 +0,0 @@ |
|||
package com.canvas.web.service; |
|||
|
|||
|
|||
import com.canvas.web.utils.JsonResult; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
|
|||
public interface IUplpadService { |
|||
|
|||
/** |
|||
* 上传图片 |
|||
* |
|||
* @param request 网络请求 |
|||
* @param name 目录名 |
|||
* @return |
|||
*/ |
|||
JsonResult uploadImage(HttpServletRequest request, String name); |
|||
|
|||
} |
@ -1,30 +0,0 @@ |
|||
package com.canvas.web.service.impl; |
|||
|
|||
import com.canvas.web.service.IUplpadService; |
|||
import com.canvas.web.utils.CommonUtils; |
|||
import com.canvas.web.utils.JsonResult; |
|||
import com.canvas.web.utils.UploadUtils; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
public class UploadServiceImpl implements IUplpadService { |
|||
|
|||
|
|||
/** |
|||
* 上传图片 |
|||
* |
|||
* @param request 网络请求 |
|||
* @param name 目录名 |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public JsonResult uploadImage(HttpServletRequest request, String name) { |
|||
UploadUtils uploadUtils = new UploadUtils(); |
|||
Map<String, Object> result = uploadUtils.uploadFile(request, name); |
|||
List<String> imageList = (List<String>) result.get("image"); |
|||
String imageUrl = CommonUtils.getImageURL(imageList.get(0)); |
|||
return JsonResult.success("上传成功", imageUrl); |
|||
} |
|||
} |
@ -1,305 +0,0 @@ |
|||
package com.canvas.web.utils; |
|||
|
|||
import com.canvas.web.config.UploadFileConfig; |
|||
import org.apache.commons.fileupload.FileItem; |
|||
import org.apache.commons.fileupload.FileUploadException; |
|||
import org.apache.commons.fileupload.disk.DiskFileItemFactory; |
|||
import org.apache.commons.fileupload.servlet.ServletFileUpload; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import java.io.File; |
|||
import java.io.IOException; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.*; |
|||
|
|||
public class UploadUtils { |
|||
|
|||
// 表单字段常量 |
|||
public static final String FORM_FIELDS = "form_fields"; |
|||
|
|||
// 文件域常量 |
|||
public static final String FILE_FIELDS = "file"; |
|||
// 定义允许上传的文件扩展名 |
|||
private Map<String, String> extMap = new HashMap<String, String>(); |
|||
// 文件保存目录路径 |
|||
private String uploadPath = UploadFileConfig.uploadFolder; |
|||
// 文件的目录名 |
|||
private String dirName = "images"; |
|||
// 上传临时路径 |
|||
private static final String TEMP_PATH = "temp"; |
|||
// 临时存相对路径 |
|||
private String tempPath = uploadPath + TEMP_PATH; |
|||
// 单个文件最大上传大小(10M) |
|||
private long fileMaxSize = 1024 * 1024 * 10; |
|||
// 最大文件大小(100M) |
|||
private long maxSize = 1024 * 1024 * 100; |
|||
// 文件保存目录url |
|||
private String saveUrl; |
|||
// 文件最终的url包括文件名 |
|||
private List<String> fileUrl = new ArrayList<>(); |
|||
|
|||
/** |
|||
* 构造函数 |
|||
*/ |
|||
public UploadUtils() { |
|||
// 其中images,flashs,medias,files,对应文件夹名称,对应dirName |
|||
// key文件夹名称 |
|||
// value该文件夹内可以上传文件的后缀名 |
|||
extMap.put("images", "gif,jpg,jpeg,png,bmp"); |
|||
extMap.put("flashs", "swf,flv"); |
|||
extMap.put("medias", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb"); |
|||
extMap.put("files", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2"); |
|||
} |
|||
|
|||
/** |
|||
* 文件上传 |
|||
* |
|||
* @param request |
|||
* @return |
|||
*/ |
|||
@SuppressWarnings("unchecked") |
|||
public Map<String, Object> uploadFile(HttpServletRequest request, String name) { |
|||
// 验证文件并返回错误信息 |
|||
String error = this.validateFields(request, name); |
|||
// 初始化表单元素 |
|||
Map<String, Object> fieldsMap = new HashMap<String, Object>(); |
|||
if (error.equals("")) { |
|||
fieldsMap = this.initFields(request); |
|||
} |
|||
List<FileItem> fiList = (List<FileItem>) fieldsMap.get(UploadUtils.FILE_FIELDS); |
|||
if (fiList != null) { |
|||
for (FileItem item : fiList) { |
|||
// 上传文件并返回错误信息 |
|||
error = this.saveFile(item); |
|||
} |
|||
} |
|||
// 返回结果 |
|||
Map<String, Object> result = new HashMap<>(); |
|||
result.put("error", error); |
|||
result.put("image", this.fileUrl); |
|||
return result; |
|||
} |
|||
|
|||
/** |
|||
* 上传验证并初始化目录 |
|||
* |
|||
* @param request |
|||
* @return |
|||
*/ |
|||
private String validateFields(HttpServletRequest request, String name) { |
|||
String errorInfo = ""; |
|||
// 获取内容类型 |
|||
String contentType = request.getContentType(); |
|||
int contentLength = request.getContentLength(); |
|||
// 初始化上传路径,不存在则创建 |
|||
File uploadDir = new File(uploadPath); |
|||
// 目录不存在则创建 |
|||
if (!uploadDir.exists()) { |
|||
uploadDir.mkdirs(); |
|||
} |
|||
if (contentType == null || !contentType.startsWith("multipart")) { |
|||
// TODO |
|||
System.out.println("请求不包含multipart/form-data流"); |
|||
errorInfo = "请求不包含multipart/form-data流"; |
|||
} else if (maxSize < contentLength) { |
|||
// TODO |
|||
System.out.println("上传文件大小超出文件最大大小"); |
|||
errorInfo = "上传文件大小超出文件最大大小[" + maxSize + "]"; |
|||
} else if (!ServletFileUpload.isMultipartContent(request)) { |
|||
// TODO |
|||
errorInfo = "请选择文件"; |
|||
} else if (!uploadDir.isDirectory()) { |
|||
// TODO |
|||
errorInfo = "上传目录[" + uploadPath + "]不存在"; |
|||
} else if (!uploadDir.canWrite()) { |
|||
// TODO |
|||
errorInfo = "上传目录[" + uploadPath + "]没有写权限"; |
|||
} else if (!extMap.containsKey(dirName)) { |
|||
// TODO |
|||
errorInfo = "目录名不正确"; |
|||
} else { |
|||
// 上传路径 |
|||
uploadPath += dirName + "/" + name + "/"; |
|||
// 保存目录Url |
|||
saveUrl = dirName + "/" + name + "/"; |
|||
|
|||
// 创建一级目录 |
|||
File saveDirFile = new File(uploadPath); |
|||
if (!saveDirFile.exists()) { |
|||
saveDirFile.mkdirs(); |
|||
} |
|||
|
|||
// 创建二级目录(格式:年月日) |
|||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); |
|||
String ymd = sdf.format(new Date()); |
|||
uploadPath += ymd + "/"; |
|||
saveUrl += ymd + "/"; |
|||
File dirFile = new File(uploadPath); |
|||
if (!dirFile.exists()) { |
|||
dirFile.mkdirs(); |
|||
} |
|||
|
|||
// 创建上传临时目录 |
|||
File file = new File(tempPath); |
|||
if (!file.exists()) { |
|||
file.mkdirs(); |
|||
} |
|||
} |
|||
return errorInfo; |
|||
} |
|||
|
|||
/** |
|||
* 处理上传内容 |
|||
* |
|||
* @return |
|||
*/ |
|||
// @SuppressWarnings("unchecked") |
|||
private Map<String, Object> initFields(HttpServletRequest request) { |
|||
// 存储表单字段和非表单字段 |
|||
Map<String, Object> map = new HashMap<String, Object>(); |
|||
// 第一步:判断request |
|||
boolean isMultipart = ServletFileUpload.isMultipartContent(request); |
|||
// 第二步:解析request |
|||
if (isMultipart) { |
|||
// 设置环境:创建一个DiskFileItemFactory工厂 |
|||
DiskFileItemFactory factory = new DiskFileItemFactory(); |
|||
// 阀值,超过这个值才会写到临时目录,否则在内存中 |
|||
factory.setSizeThreshold(1024 * 1024 * 10); |
|||
// 设置上传文件的临时目录 |
|||
factory.setRepository(new File(tempPath)); |
|||
// 核心操作类:创建一个文件上传解析器。 |
|||
ServletFileUpload upload = new ServletFileUpload(factory); |
|||
// 设置文件名称编码(解决上传"文件名"的中文乱码) |
|||
upload.setHeaderEncoding("UTF-8"); |
|||
// 限制单个文件上传大小 |
|||
upload.setFileSizeMax(fileMaxSize); |
|||
// 限制总上传文件大小 |
|||
upload.setSizeMax(maxSize); |
|||
// 使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项 |
|||
List<FileItem> items = null; |
|||
try { |
|||
items = upload.parseRequest(request); |
|||
} catch (FileUploadException e) { |
|||
// TODO Auto-generated catch block |
|||
e.printStackTrace(); |
|||
} |
|||
|
|||
// 第3步:处理uploaded items |
|||
if (items != null && items.size() > 0) { |
|||
Iterator<FileItem> iter = items.iterator(); |
|||
// 文件域对象 |
|||
List<FileItem> list = new ArrayList<FileItem>(); |
|||
// 表单字段 |
|||
Map<String, String> fields = new HashMap<String, String>(); |
|||
while (iter.hasNext()) { |
|||
FileItem item = iter.next(); |
|||
// 处理所有表单元素和文件域表单元素 |
|||
if (item.isFormField()) { |
|||
// 如果fileitem中封装的是普通输入项的数据(输出名、值) |
|||
String name = item.getFieldName();// 普通输入项数据的名 |
|||
String value = item.getString(); |
|||
fields.put(name, value); |
|||
} else { |
|||
//如果fileitem中封装的是上传文件,得到上传的文件名称 |
|||
// 文件域表单元素 |
|||
list.add(item); |
|||
} |
|||
} |
|||
map.put(FORM_FIELDS, fields); |
|||
map.put(FILE_FIELDS, list); |
|||
} |
|||
} |
|||
return map; |
|||
} |
|||
|
|||
/** |
|||
* 保存文件 |
|||
* |
|||
* @param item |
|||
* @return |
|||
*/ |
|||
private String saveFile(FileItem item) { |
|||
String error = ""; |
|||
String fileName = item.getName(); |
|||
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); |
|||
|
|||
if (item.getSize() > maxSize) { // 检查文件大小 |
|||
// TODO |
|||
error = "上传文件大小超过限制"; |
|||
} else if (!Arrays.<String>asList(extMap.get(dirName).split(",")).contains(fileExt)) {// 检查扩展名 |
|||
error = "上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"; |
|||
} else { |
|||
// 存储文件重命名 |
|||
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); |
|||
String newFileName = df.format(new Date()) + new Random().nextInt(1000) + "." + fileExt; |
|||
|
|||
// 新增值文件数组 |
|||
String filePath = saveUrl + newFileName; |
|||
fileUrl.add(filePath); |
|||
|
|||
// 写入文件 |
|||
try { |
|||
File uploadedFile = new File(uploadPath, newFileName); |
|||
item.write(uploadedFile); |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
System.out.println("上传失败了!!!"); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
return error; |
|||
} |
|||
|
|||
/** |
|||
* *********************get/set方法********************************* |
|||
*/ |
|||
public String getSaveUrl() { |
|||
return saveUrl; |
|||
} |
|||
|
|||
public String getUploadPath() { |
|||
return uploadPath; |
|||
} |
|||
|
|||
public long getMaxSize() { |
|||
return maxSize; |
|||
} |
|||
|
|||
public void setMaxSize(long maxSize) { |
|||
this.maxSize = maxSize; |
|||
} |
|||
|
|||
public Map<String, String> getExtMap() { |
|||
return extMap; |
|||
} |
|||
|
|||
public void setExtMap(Map<String, String> extMap) { |
|||
this.extMap = extMap; |
|||
} |
|||
|
|||
public String getDirName() { |
|||
return dirName; |
|||
} |
|||
|
|||
public void setDirName(String dirName) { |
|||
this.dirName = dirName; |
|||
} |
|||
|
|||
public String getTempPath() { |
|||
return tempPath; |
|||
} |
|||
|
|||
public void setTempPath(String tempPath) { |
|||
this.tempPath = tempPath; |
|||
} |
|||
|
|||
public List getFileUrl() { |
|||
return fileUrl; |
|||
} |
|||
|
|||
public void setFileUrl(List fileUrl) { |
|||
this.fileUrl = fileUrl; |
|||
} |
|||
|
|||
} |
@ -1,52 +0,0 @@ |
|||
<?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>yxk_canvasScreen</artifactId> |
|||
<groupId>com.canvas.web</groupId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<artifactId>generator</artifactId> |
|||
<name>代码生成</name> |
|||
|
|||
<properties> |
|||
<maven.compiler.source>17</maven.compiler.source> |
|||
<maven.compiler.target>17</maven.compiler.target> |
|||
</properties> |
|||
|
|||
<!-- 依赖声明 --> |
|||
<dependencies> |
|||
<!-- 基础依赖 --> |
|||
<dependency> |
|||
<groupId>com.canvas.web</groupId> |
|||
<artifactId>common</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</dependency> |
|||
<!-- MySql驱动 --> |
|||
<dependency> |
|||
<groupId>mysql</groupId> |
|||
<artifactId>mysql-connector-java</artifactId> |
|||
<scope>runtime</scope> |
|||
</dependency> |
|||
<!--mybatis-plus 代码自动生成 --> |
|||
<dependency> |
|||
<groupId>com.baomidou</groupId> |
|||
<artifactId>mybatis-plus-generator</artifactId> |
|||
<version>3.2.0</version> |
|||
</dependency> |
|||
<!-- freemarker模板引擎依赖 --> |
|||
<dependency> |
|||
<groupId>org.freemarker</groupId> |
|||
<artifactId>freemarker</artifactId> |
|||
<version>2.3.28</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok</artifactId> |
|||
<optional>true</optional> |
|||
</dependency> |
|||
</dependencies> |
|||
</project> |
@ -1,35 +0,0 @@ |
|||
<?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>yxk_canvasScreen</artifactId> |
|||
<groupId>com.canvas.web</groupId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<artifactId>quartz</artifactId> |
|||
<name>定时任务</name> |
|||
|
|||
<properties> |
|||
<maven.compiler.source>17</maven.compiler.source> |
|||
<maven.compiler.target>17</maven.compiler.target> |
|||
</properties> |
|||
|
|||
<!-- 依赖声明 --> |
|||
<dependencies> |
|||
<!-- 基础依赖 --> |
|||
<dependency> |
|||
<groupId>com.canvas.web</groupId> |
|||
<artifactId>common</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok</artifactId> |
|||
<optional>true</optional> |
|||
</dependency> |
|||
</dependencies> |
|||
|
|||
</project> |
@ -1,43 +0,0 @@ |
|||
<?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>yxk_canvasScreen</artifactId> |
|||
<groupId>com.canvas.web</groupId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<artifactId>queue</artifactId> |
|||
<name>消息队列</name> |
|||
|
|||
<properties> |
|||
<maven.compiler.source>17</maven.compiler.source> |
|||
<maven.compiler.target>17</maven.compiler.target> |
|||
</properties> |
|||
|
|||
<!-- 依赖声明 --> |
|||
<dependencies> |
|||
<!-- 基础依赖 --> |
|||
<dependency> |
|||
<groupId>com.canvas.web</groupId> |
|||
<artifactId>common</artifactId> |
|||
<version>1.0-SNAPSHOT</version> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-activemq</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.springframework.boot</groupId> |
|||
<artifactId>spring-boot-starter-amqp</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.projectlombok</groupId> |
|||
<artifactId>lombok</artifactId> |
|||
<optional>true</optional> |
|||
</dependency> |
|||
</dependencies> |
|||
|
|||
</project> |
@ -1,3 +1,5 @@ |
|||
package com.canvas.web; |
|||
|
|||
import com.canvas.web.annotation.rest.AnonymousGetMapping; |
|||
import com.canvas.web.utils.SpringContextHolder; |
|||
import io.swagger.annotations.Api; |
@ -1,8 +1,8 @@ |
|||
package modules.security.config; |
|||
package com.canvas.web.modules.config; |
|||
|
|||
|
|||
import modules.security.config.bean.LoginProperties; |
|||
import modules.security.config.bean.SecurityProperties; |
|||
import com.canvas.web.modules.config.bean.SecurityProperties; |
|||
import com.canvas.web.modules.config.bean.LoginProperties; |
|||
import org.springframework.boot.context.properties.ConfigurationProperties; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
@ -1,11 +1,12 @@ |
|||
package modules.security.config; |
|||
package com.canvas.web.modules.config; |
|||
|
|||
import com.canvas.web.modules.security.JwtAccessDeniedHandler; |
|||
import com.canvas.web.modules.security.JwtAuthenticationEntryPoint; |
|||
import com.canvas.web.modules.security.SecurityProperties; |
|||
import com.canvas.web.modules.security.TokenProvider; |
|||
import lombok.RequiredArgsConstructor; |
|||
import modules.security.security.JwtAccessDeniedHandler; |
|||
import modules.security.security.JwtAuthenticationEntryPoint; |
|||
import modules.security.security.SecurityProperties; |
|||
import modules.security.security.TokenProvider; |
|||
import modules.security.service.UserCacheClean; |
|||
|
|||
import com.canvas.web.modules.service.UserCacheClean; |
|||
import org.springframework.context.ApplicationContext; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; |
@ -1,4 +1,4 @@ |
|||
package modules.security.config.bean; |
|||
package com.canvas.web.modules.config.bean; |
|||
|
|||
import lombok.Data; |
|||
|
@ -1,4 +1,4 @@ |
|||
package modules.security.config.bean; |
|||
package com.canvas.web.modules.config.bean; |
|||
|
|||
//验证码配置枚举 |
|||
public enum LoginCodeEnum { |
@ -1,7 +1,6 @@ |
|||
package modules.security.config.bean; |
|||
package com.canvas.web.modules.config.bean; |
|||
|
|||
import com.canvas.web.exception.BaseException; |
|||
import com.canvas.web.exception.user.UserException; |
|||
import com.canvas.web.utils.StringUtils; |
|||
import com.wf.captcha.*; |
|||
import com.wf.captcha.base.Captcha; |
@ -1,10 +1,11 @@ |
|||
package modules.security.security; |
|||
package com.canvas.web.modules.config.bean; |
|||
|
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class SecurityProperties { |
|||
|
|||
/** |
|||
* Request Headers:Authorization |
|||
*/ |
@ -0,0 +1,15 @@ |
|||
package com.canvas.web.modules.controller; |
|||
|
|||
|
|||
import com.canvas.web.modules.service.OnlineUserService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@RequestMapping("/auth/online") |
|||
public class OnlineController { |
|||
|
|||
private final OnlineUserService onlineUserService; |
|||
} |
@ -1,4 +1,4 @@ |
|||
package modules.security.security; |
|||
package com.canvas.web.modules.security; |
|||
|
|||
import org.springframework.security.access.AccessDeniedException; |
|||
import org.springframework.security.web.access.AccessDeniedHandler; |
@ -1,4 +1,4 @@ |
|||
package modules.security.security; |
|||
package com.canvas.web.modules.security; |
|||
|
|||
|
|||
import org.springframework.security.core.AuthenticationException; |
@ -1,11 +1,10 @@ |
|||
package modules.security.config.bean; |
|||
package com.canvas.web.modules.security; |
|||
|
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class SecurityProperties { |
|||
|
|||
/** |
|||
* Request Headers:Authorization |
|||
*/ |
@ -1,8 +1,8 @@ |
|||
package modules.security.security; |
|||
package com.canvas.web.modules.security; |
|||
|
|||
import com.canvas.web.modules.service.OnlineUserService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import modules.security.service.OnlineUserService; |
|||
import modules.security.service.UserCacheClean; |
|||
import com.canvas.web.modules.service.UserCacheClean; |
|||
import org.springframework.security.config.annotation.SecurityConfigurerAdapter; |
|||
import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
|||
import org.springframework.security.web.DefaultSecurityFilterChain; |
@ -1,4 +1,4 @@ |
|||
package modules.security.security; |
|||
package com.canvas.web.modules.security; |
|||
|
|||
import cn.hutool.core.date.DateField; |
|||
import cn.hutool.core.date.DateUtil; |
@ -1,15 +1,14 @@ |
|||
package modules.security.service; |
|||
package com.canvas.web.modules.service; |
|||
|
|||
import com.canvas.web.utils.RedisUtils; |
|||
import com.canvas.web.utils.StringUtils; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import modules.security.config.bean.SecurityProperties; |
|||
import modules.security.service.dto.JwtUserDto; |
|||
import modules.security.service.dto.OnlineUserDto; |
|||
import com.canvas.web.modules.config.bean.SecurityProperties; |
|||
import com.canvas.web.modules.service.dto.JwtUserDto; |
|||
import com.canvas.web.modules.service.dto.OnlineUserDto; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import java.util.Date; |
|||
|
|||
|
|||
@Service |
@ -1,4 +1,4 @@ |
|||
package modules.security.service; |
|||
package com.canvas.web.modules.service; |
|||
|
|||
|
|||
|
@ -1,14 +1,14 @@ |
|||
package modules.security.service; |
|||
package com.canvas.web.modules.service; |
|||
|
|||
import com.canvas.web.exception.BaseException; |
|||
import com.canvas.web.modules.service.dto.JwtUserDto; |
|||
import com.canvas.web.modules.system.service.UserService; |
|||
import com.canvas.web.modules.system.service.dto.UserDto; |
|||
import lombok.RequiredArgsConstructor; |
|||
import modules.security.config.bean.LoginProperties; |
|||
import modules.security.service.dto.JwtUserDto; |
|||
import modules.system.service.DataService; |
|||
import modules.system.service.RoleService; |
|||
import modules.system.service.UserService; |
|||
import com.canvas.web.modules.config.bean.LoginProperties; |
|||
import com.canvas.web.modules.system.service.DataService; |
|||
import com.canvas.web.modules.system.service.RoleService; |
|||
|
|||
import modules.system.service.dto.UserDto; |
|||
import org.springframework.security.core.userdetails.UserDetailsService; |
|||
import org.springframework.security.core.userdetails.UsernameNotFoundException; |
|||
import org.springframework.stereotype.Service; |
@ -1,4 +1,4 @@ |
|||
package modules.security.service.dto; |
|||
package com.canvas.web.modules.service.dto; |
|||
|
|||
|
|||
import lombok.Getter; |
@ -1,10 +1,10 @@ |
|||
package modules.security.service.dto; |
|||
package com.canvas.web.modules.service.dto; |
|||
|
|||
|
|||
import com.canvas.web.modules.system.service.dto.UserDto; |
|||
import com.fasterxml.jackson.annotation.JsonIgnore; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Getter; |
|||
import modules.system.service.dto.UserDto; |
|||
import org.springframework.security.core.GrantedAuthority; |
|||
import org.springframework.security.core.userdetails.UserDetails; |
|||
|
@ -1,4 +1,4 @@ |
|||
package modules.security.service.dto; |
|||
package com.canvas.web.modules.service.dto; |
|||
|
|||
|
|||
import lombok.AllArgsConstructor; |
@ -1,6 +1,6 @@ |
|||
package modules.system.service; |
|||
package com.canvas.web.modules.system.service; |
|||
|
|||
import modules.system.service.dto.UserDto; |
|||
import com.canvas.web.modules.system.service.dto.UserDto; |
|||
|
|||
import java.util.List; |
|||
|
@ -1,6 +1,6 @@ |
|||
package modules.system.service; |
|||
package com.canvas.web.modules.system.service; |
|||
|
|||
import modules.system.service.dto.UserDto; |
|||
import com.canvas.web.modules.system.service.dto.UserDto; |
|||
import org.springframework.security.core.GrantedAuthority; |
|||
|
|||
import java.util.List; |
@ -1,7 +1,7 @@ |
|||
package modules.system.service; |
|||
package com.canvas.web.modules.system.service; |
|||
|
|||
import modules.system.service.dto.UserDto; |
|||
import modules.system.service.dto.UserQueryCriteria; |
|||
import com.canvas.web.modules.system.service.dto.UserDto; |
|||
import com.canvas.web.modules.system.service.dto.UserQueryCriteria; |
|||
import org.springframework.data.domain.Pageable; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
@ -1,4 +1,4 @@ |
|||
package modules.system.service.dto; |
|||
package com.canvas.web.modules.system.service.dto; |
|||
|
|||
import com.canvas.web.base.BaseDTO; |
|||
import lombok.Getter; |
@ -1,4 +1,4 @@ |
|||
package modules.system.service.dto; |
|||
package com.canvas.web.modules.system.service.dto; |
|||
|
|||
import com.canvas.web.base.BaseDTO; |
|||
import lombok.Getter; |
@ -1,4 +1,4 @@ |
|||
package modules.system.service.dto; |
|||
package com.canvas.web.modules.system.service.dto; |
|||
|
|||
import lombok.Data; |
|||
|
@ -1,4 +1,4 @@ |
|||
package modules.system.service.dto; |
|||
package com.canvas.web.modules.system.service.dto; |
|||
|
|||
|
|||
import com.canvas.web.base.BaseDTO; |
@ -1,4 +1,4 @@ |
|||
package modules.system.service.dto; |
|||
package com.canvas.web.modules.system.service.dto; |
|||
|
|||
import com.canvas.web.annotation.Query; |
|||
import lombok.Data; |
@ -0,0 +1,16 @@ |
|||
|
|||
|
|||
|
|||
$$$$$$$\ $$$$$$\ $$$$$$$\ $$\ $$\ $$$$$$\ $$$$$$$\ $$$$$$$\ $$\ $$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$$\ |
|||
$$ _____|\____$$\ $$ __$$\\$$\ $$ |\____$$\ $$ _____|$$$$$$\ $$ _____|\$$\ $$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\ |
|||
$$ / $$$$$$$ |$$ | $$ |\$$\$$ / $$$$$$$ |\$$$$$$\ \______|\$$$$$$\ \$$\$$ / $$ | \__|$$$$$$$$ |$$$$$$$$ |$$ | $$ | |
|||
$$ | $$ __$$ |$$ | $$ | \$$$ / $$ __$$ | \____$$\ \____$$\ \$$$ / $$ | $$ ____|$$ ____|$$ | $$ | |
|||
\$$$$$$$\\$$$$$$$ |$$ | $$ | \$ / \$$$$$$$ |$$$$$$$ | $$$$$$$ | \$ / $$ | \$$$$$$$\ \$$$$$$$\ $$ | $$ | |
|||
\_______|\_______|\__| \__| \_/ \_______|\_______/ \_______/ \_/ \__| \_______| \_______|\__| \__| |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
:: Spring Boot :: (v2.6.1.RELEASE) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue