From fc69911580cb79ad102195c182946d59e0b7b8d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Mon, 11 Aug 2025 21:12:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- .../yulinling/workflow/aspectj/AopLog.java | 84 +++++++++--------- .../workflow/config/SecurityConfig.java | 20 ++--- .../yulinling/workflow/constant/Status.java | 88 ++++++++++++++----- .../workflow/dto/request/LoginRequest.java | 1 + .../workflow/dto/request/NotebookRequest.java | 36 ++++---- .../workflow/dto/response/PageResult.java | 3 +- .../handler/GlobalExceptionHandler.java | 8 -- .../workflow/model/vo/user/UserPrincipal.java | 9 +- .../security/JwtAuthenticationEntryPoint.java | 2 +- .../JwtRbacAuthenticationService.java | 12 +-- .../security/JwtUserDetailsService.java | 10 +-- .../workflow/service/AuthService.java | 9 +- .../service/impl/AuthServiceImpl.java | 14 ++- .../service/impl/MailServiceImpl.java | 5 +- .../service/impl/UserServiceImpl.java | 4 +- .../workflow/task/ScheduledTask.java | 3 +- .../workflow/task/WebSocketTask.java | 4 +- src/main/resources/db/test.sql | 15 ++-- src/main/resources/email/test.html | 2 +- src/main/resources/logback-spring.xml | 6 +- src/main/resources/templates/error.html | 2 +- src/main/resources/templates/welcome.html | 2 +- .../workflow/service/EmailServiceTest.java | 2 +- .../yulinling/workflow/utils/RedisTest.java | 6 +- 25 files changed, 194 insertions(+), 157 deletions(-) diff --git a/pom.xml b/pom.xml index 5c72177..6943d14 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ - 4.0.0 diff --git a/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java b/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java index 1e70254..835469a 100644 --- a/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java +++ b/src/main/java/asia/yulinling/workflow/aspectj/AopLog.java @@ -39,6 +39,48 @@ import java.util.Objects; @Component @Slf4j public class AopLog { + /** + * 获取ip地址 + * + * @param request 请求体 + * @return 返回ip地址 + */ + public static String getIp(HttpServletRequest request) { + String ip = request.getHeader("X-Forwarded-For"); + if (isInvalidIp(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (isInvalidIp(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (isInvalidIp(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (isInvalidIp(ip)) { + ip = request.getRemoteAddr(); + } + + // 处理多级代理 + if (ip != null && ip.contains(",")) { + ip = ip.split(",")[0].trim(); + } + + // 本地地址处理 + if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) { + try { + ip = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + log.error("获取本地 IP 失败", e); + } + } + + return ip; + } + + private static boolean isInvalidIp(String ip) { + return ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip); + } + /** * 切入点 */ @@ -111,48 +153,6 @@ public class AopLog { return map; } - /** - * 获取ip地址 - * - * @param request 请求体 - * @return 返回ip地址 - */ - public static String getIp(HttpServletRequest request) { - String ip = request.getHeader("X-Forwarded-For"); - if (isInvalidIp(ip)) { - ip = request.getHeader("Proxy-Client-IP"); - } - if (isInvalidIp(ip)) { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (isInvalidIp(ip)) { - ip = request.getHeader("HTTP_CLIENT_IP"); - } - if (isInvalidIp(ip)) { - ip = request.getRemoteAddr(); - } - - // 处理多级代理 - if (ip != null && ip.contains(",")) { - ip = ip.split(",")[0].trim(); - } - - // 本地地址处理 - if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) { - try { - ip = InetAddress.getLocalHost().getHostAddress(); - } catch (UnknownHostException e) { - log.error("获取本地 IP 失败", e); - } - } - - return ip; - } - - private static boolean isInvalidIp(String ip) { - return ip == null || ip.isEmpty() || "unknown".equalsIgnoreCase(ip); - } - @Data @Builder @NoArgsConstructor diff --git a/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java b/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java index f9e5321..dc1a5a7 100644 --- a/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java +++ b/src/main/java/asia/yulinling/workflow/config/SecurityConfig.java @@ -58,17 +58,17 @@ public class SecurityConfig { ) // 认证请求 .authorizeHttpRequests(auth -> auth - .requestMatchers("/auth/**").permitAll() - .requestMatchers("/auth/register").permitAll() - .requestMatchers("/api/**").permitAll() + .requestMatchers("/auth/**").permitAll() + .requestMatchers("/auth/register").permitAll() + .requestMatchers("/api/**").permitAll() // .requestMatchers("/user/**").permitAll() - .anyRequest().access((authenticationSupplier, requestAuthorizationContext) -> { - HttpServletRequest request = requestAuthorizationContext.getRequest(); - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - return new AuthorizationDecision( - jwtRbacAuthenticationService.hasPermission(request, authentication) - ); - }) + .anyRequest().access((authenticationSupplier, requestAuthorizationContext) -> { + HttpServletRequest request = requestAuthorizationContext.getRequest(); + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + return new AuthorizationDecision( + jwtRbacAuthenticationService.hasPermission(request, authentication) + ); + }) ) // JWT过滤器 .addFilterBefore( diff --git a/src/main/java/asia/yulinling/workflow/constant/Status.java b/src/main/java/asia/yulinling/workflow/constant/Status.java index e74ac74..eebc6b7 100644 --- a/src/main/java/asia/yulinling/workflow/constant/Status.java +++ b/src/main/java/asia/yulinling/workflow/constant/Status.java @@ -12,70 +12,114 @@ import lombok.Getter; */ @Getter public enum Status { - /** 操作成功! */ + /** + * 操作成功! + */ SUCCESS(200, "操作成功!"), - /** 未知异常 */ + /** + * 未知异常 + */ UNKNOWN_ERROR(500, "未知异常"), - /** 退出成功! */ + /** + * 退出成功! + */ LOGOUT(200, "退出成功!"), - /** 登录成功! */ + /** + * 登录成功! + */ LOGIN_SUCCESS(200, "登录成功!"), - /** 请先登录! */ + /** + * 请先登录! + */ UNAUTHORIZED(401, "请先登录!"), - /** 暂无权限访问! */ + /** + * 暂无权限访问! + */ ACCESS_DENIED(403, "权限不足!"), - /** 请求不存在! */ + /** + * 请求不存在! + */ REQUEST_NOT_FOUND(404, "请求不存在!"), - /** 请求方式不支持! */ + /** + * 请求方式不支持! + */ HTTP_BAD_METHOD(405, "请求方式不支持!"), - /** 请求异常! */ + /** + * 请求异常! + */ BAD_REQUEST(400, "请求异常!"), - /** 参数不匹配! */ + /** + * 参数不匹配! + */ PARAM_NOT_MATCH(400, "参数不匹配!"), - /** 参数不能为空! */ + /** + * 参数不能为空! + */ PARAM_NOT_NULL(400, "参数不能为空!"), - /** 当前用户已被锁定,请联系管理员解锁! */ + /** + * 当前用户已被锁定,请联系管理员解锁! + */ USER_DISABLED(403, "当前用户已被锁定,请联系管理员解锁!"), - /** 用户名或密码错误! */ + /** + * 用户名或密码错误! + */ USERNAME_PASSWORD_ERROR(5001, "用户名或密码错误!"), - /** token 已过期,请重新登录! */ + /** + * token 已过期,请重新登录! + */ TOKEN_EXPIRED(5002, "token 已过期,请重新登录!"), - /** token 解析失败,请尝试重新登录! */ + /** + * token 解析失败,请尝试重新登录! + */ TOKEN_PARSE_ERROR(5002, "token 解析失败,请尝试重新登录!"), - /** 当前用户已在别处登录,请尝试更改密码或重新登录! */ + /** + * 当前用户已在别处登录,请尝试更改密码或重新登录! + */ TOKEN_OUT_OF_CTRL(5003, "当前用户已在别处登录,请尝试更改密码或重新登录!"), - /** 无法手动踢出自己,请尝试退出登录操作! */ + /** + * 无法手动踢出自己,请尝试退出登录操作! + */ KICKOUT_SELF(5004, "无法手动踢出自己,请尝试退出登录操作!"), - /** 账号密码错误 */ + /** + * 账号密码错误 + */ USERNAME_OR_PASSWORD_ERROR(200, "账号密码错误"), - /** 账户已被锁定 */ + /** + * 账户已被锁定 + */ ACCOUNT_LOCKED(200, "账户已被锁定"), - /** 注册成功! */ + /** + * 注册成功! + */ REGISTER_SUCCESS(200, "注册成功"); - /** 状态码 */ + /** + * 状态码 + */ private final Integer code; - /** 内容 */ + /** + * 内容 + */ private final String message; Status(Integer code, String message) { diff --git a/src/main/java/asia/yulinling/workflow/dto/request/LoginRequest.java b/src/main/java/asia/yulinling/workflow/dto/request/LoginRequest.java index 52be9a2..9915973 100644 --- a/src/main/java/asia/yulinling/workflow/dto/request/LoginRequest.java +++ b/src/main/java/asia/yulinling/workflow/dto/request/LoginRequest.java @@ -3,6 +3,7 @@ package asia.yulinling.workflow.dto.request; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; + /** *

* 登录请求类 diff --git a/src/main/java/asia/yulinling/workflow/dto/request/NotebookRequest.java b/src/main/java/asia/yulinling/workflow/dto/request/NotebookRequest.java index c822184..2ea87a6 100644 --- a/src/main/java/asia/yulinling/workflow/dto/request/NotebookRequest.java +++ b/src/main/java/asia/yulinling/workflow/dto/request/NotebookRequest.java @@ -5,25 +5,25 @@ import lombok.Data; @Data public class NotebookRequest { - /** - * 用户id,外键 - */ - @NotBlank(message = "创建用户为空") - Long userId; + /** + * 用户id,外键 + */ + @NotBlank(message = "创建用户为空") + Long userId; - /** - * 笔记本名称 - */ - @NotBlank(message = "笔记本名称为空") - String name; + /** + * 笔记本名称 + */ + @NotBlank(message = "笔记本名称为空") + String name; - /** - * 笔记本颜色标识 - */ - String color; + /** + * 笔记本颜色标识 + */ + String color; - /** - * 笔记本图标标识 - */ - String icon; + /** + * 笔记本图标标识 + */ + String icon; } diff --git a/src/main/java/asia/yulinling/workflow/dto/response/PageResult.java b/src/main/java/asia/yulinling/workflow/dto/response/PageResult.java index 6d4859e..8556a5b 100644 --- a/src/main/java/asia/yulinling/workflow/dto/response/PageResult.java +++ b/src/main/java/asia/yulinling/workflow/dto/response/PageResult.java @@ -29,7 +29,8 @@ public class PageResult implements Serializable { private int to; // 当前页最后一条数据在总数据中的位置 // 无参构造器 - public PageResult() {} + public PageResult() { + } // 构造方法(可选传参) public PageResult(long total, int currentPage, int pageSize, List list) { diff --git a/src/main/java/asia/yulinling/workflow/exception/handler/GlobalExceptionHandler.java b/src/main/java/asia/yulinling/workflow/exception/handler/GlobalExceptionHandler.java index 56ad670..4fd4487 100644 --- a/src/main/java/asia/yulinling/workflow/exception/handler/GlobalExceptionHandler.java +++ b/src/main/java/asia/yulinling/workflow/exception/handler/GlobalExceptionHandler.java @@ -4,23 +4,15 @@ import asia.yulinling.workflow.exception.PageException; import asia.yulinling.workflow.exception.ServiceException; import asia.yulinling.workflow.model.ApiResponse; import lombok.extern.slf4j.Slf4j; -import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.servlet.ModelAndView; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.stream.Collectors; - /** *

* 全局异常处理 diff --git a/src/main/java/asia/yulinling/workflow/model/vo/user/UserPrincipal.java b/src/main/java/asia/yulinling/workflow/model/vo/user/UserPrincipal.java index ea730da..bad24db 100644 --- a/src/main/java/asia/yulinling/workflow/model/vo/user/UserPrincipal.java +++ b/src/main/java/asia/yulinling/workflow/model/vo/user/UserPrincipal.java @@ -130,11 +130,6 @@ public class UserPrincipal implements UserDetails { this.authorities = authorities; } - @Override - public Collection getAuthorities() { - return List.of(); - } - public UserPrincipal(Long id, String username, String password, @@ -173,6 +168,10 @@ public class UserPrincipal implements UserDetails { return userPrincipal; } + @Override + public Collection getAuthorities() { + return List.of(); + } @Override public String getPassword() { diff --git a/src/main/java/asia/yulinling/workflow/security/JwtAuthenticationEntryPoint.java b/src/main/java/asia/yulinling/workflow/security/JwtAuthenticationEntryPoint.java index f834e1f..e53f2b4 100644 --- a/src/main/java/asia/yulinling/workflow/security/JwtAuthenticationEntryPoint.java +++ b/src/main/java/asia/yulinling/workflow/security/JwtAuthenticationEntryPoint.java @@ -33,7 +33,7 @@ public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint { public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException { - log.error("AuthenticationException: {}",authException.getMessage()); + log.error("AuthenticationException: {}", authException.getMessage()); // 1. 设置res 401 response.setContentType("application/json;charset=UTF-8"); diff --git a/src/main/java/asia/yulinling/workflow/security/JwtRbacAuthenticationService.java b/src/main/java/asia/yulinling/workflow/security/JwtRbacAuthenticationService.java index a5a1c51..afd0a1f 100644 --- a/src/main/java/asia/yulinling/workflow/security/JwtRbacAuthenticationService.java +++ b/src/main/java/asia/yulinling/workflow/security/JwtRbacAuthenticationService.java @@ -57,10 +57,10 @@ public class JwtRbacAuthenticationService { log.info(permissions.toString()); List pagePerms = permissions.stream() - .filter(permission -> Objects.equals(permission.getType(), 1)) - .filter(permission -> StrUtil.isNotBlank(permission.getMethod())) - .filter(permission -> StrUtil.isNotBlank(permission.getMethod())) - .toList(); + .filter(permission -> Objects.equals(permission.getType(), 1)) + .filter(permission -> StrUtil.isNotBlank(permission.getMethod())) + .filter(permission -> StrUtil.isNotBlank(permission.getMethod())) + .toList(); for (Permission permission : pagePerms) { AntPathMatcher antPathMatcher = new AntPathMatcher(); @@ -116,8 +116,8 @@ public class JwtRbacAuthenticationService { Set urlTemplates = pathPatternsCondition.getPatterns(); RequestMethodsRequestCondition methodsCondition = mapping.getMethodsCondition(); List httpMethods = methodsCondition.getMethods().stream() - .map(Enum::toString) - .collect(Collectors.toList()); + .map(Enum::toString) + .collect(Collectors.toList()); urlTemplates.forEach(url -> urlMapping.put(url.toString(), httpMethods) ); diff --git a/src/main/java/asia/yulinling/workflow/security/JwtUserDetailsService.java b/src/main/java/asia/yulinling/workflow/security/JwtUserDetailsService.java index 726ec77..3d3e2df 100644 --- a/src/main/java/asia/yulinling/workflow/security/JwtUserDetailsService.java +++ b/src/main/java/asia/yulinling/workflow/security/JwtUserDetailsService.java @@ -39,11 +39,11 @@ public class JwtUserDetailsService implements UserDetailsService { public UserPrincipal loadUserByUsername(String username) throws UsernameNotFoundException { // 1. 构建查找sql LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(User.class) - .eq(User::getUsername, username) - .or() - .eq(User::getEmail, username) - .or() - .eq(User::getPhone, username); + .eq(User::getUsername, username) + .or() + .eq(User::getEmail, username) + .or() + .eq(User::getPhone, username); // 2. 查找用户 User user = userMapper.selectOne(queryWrapper); diff --git a/src/main/java/asia/yulinling/workflow/service/AuthService.java b/src/main/java/asia/yulinling/workflow/service/AuthService.java index b813dfc..fcd5269 100644 --- a/src/main/java/asia/yulinling/workflow/service/AuthService.java +++ b/src/main/java/asia/yulinling/workflow/service/AuthService.java @@ -1,11 +1,8 @@ package asia.yulinling.workflow.service; -import asia.yulinling.workflow.dto.request.LoginRequest; import asia.yulinling.workflow.dto.request.RegisterRequest; -import asia.yulinling.workflow.model.ApiResponse; import asia.yulinling.workflow.model.vo.LoginVO; import asia.yulinling.workflow.model.vo.RegisterVO; -import jakarta.servlet.http.HttpServletRequest; import org.springframework.security.core.Authentication; /** @@ -19,21 +16,21 @@ import org.springframework.security.core.Authentication; public interface AuthService { /** * 登录系统 - * + * * @param authentication 登录信息 */ LoginVO login(Authentication authentication, boolean rememberMe); /** * 退出登录 - * + * * @param token 登录信息 */ void logout(String token) throws SecurityException; /** * 注册 - * + * * @param request 注册请求 * @return 请求结果 */ diff --git a/src/main/java/asia/yulinling/workflow/service/impl/AuthServiceImpl.java b/src/main/java/asia/yulinling/workflow/service/impl/AuthServiceImpl.java index f0fefe8..0fe1d90 100644 --- a/src/main/java/asia/yulinling/workflow/service/impl/AuthServiceImpl.java +++ b/src/main/java/asia/yulinling/workflow/service/impl/AuthServiceImpl.java @@ -1,17 +1,13 @@ package asia.yulinling.workflow.service.impl; -import asia.yulinling.workflow.constant.Status; import asia.yulinling.workflow.dto.request.RegisterRequest; import asia.yulinling.workflow.mapper.UserMapper; -import asia.yulinling.workflow.model.ApiResponse; import asia.yulinling.workflow.model.entity.User; import asia.yulinling.workflow.model.vo.LoginVO; import asia.yulinling.workflow.model.vo.RegisterVO; import asia.yulinling.workflow.model.vo.user.UserPrincipal; import asia.yulinling.workflow.service.AuthService; import asia.yulinling.workflow.utils.JwtUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.authentication.AuthenticationManager; @@ -54,11 +50,11 @@ public class AuthServiceImpl implements AuthService { log.info("用户登录成功: {}", userPrincipal.getUsername()); return LoginVO.builder() - .userId(userPrincipal.getId()) - .username(userPrincipal.getUsername()) - .accessToken(accessToken) - .expiresIn(expiresIn) - .build(); + .userId(userPrincipal.getId()) + .username(userPrincipal.getUsername()) + .accessToken(accessToken) + .expiresIn(expiresIn) + .build(); } /** diff --git a/src/main/java/asia/yulinling/workflow/service/impl/MailServiceImpl.java b/src/main/java/asia/yulinling/workflow/service/impl/MailServiceImpl.java index 5e26196..8f6b696 100644 --- a/src/main/java/asia/yulinling/workflow/service/impl/MailServiceImpl.java +++ b/src/main/java/asia/yulinling/workflow/service/impl/MailServiceImpl.java @@ -2,6 +2,8 @@ package asia.yulinling.workflow.service.impl; import asia.yulinling.workflow.service.MailService; import cn.hutool.core.util.ArrayUtil; +import jakarta.mail.MessagingException; +import jakarta.mail.internet.MimeMessage; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.FileSystemResource; @@ -10,9 +12,6 @@ import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; -import jakarta.mail.internet.MimeMessage; -import jakarta.mail.MessagingException; - import java.io.File; /** diff --git a/src/main/java/asia/yulinling/workflow/service/impl/UserServiceImpl.java b/src/main/java/asia/yulinling/workflow/service/impl/UserServiceImpl.java index 740e7e6..4557588 100644 --- a/src/main/java/asia/yulinling/workflow/service/impl/UserServiceImpl.java +++ b/src/main/java/asia/yulinling/workflow/service/impl/UserServiceImpl.java @@ -41,7 +41,9 @@ import java.util.List; @Slf4j public class UserServiceImpl implements UserService { - /** 注入用户Mapper */ + /** + * 注入用户Mapper + */ private final UserMapper userMapper; private final RequestScopeData scopeData; private final RoleUserMapper roleUserMapper; diff --git a/src/main/java/asia/yulinling/workflow/task/ScheduledTask.java b/src/main/java/asia/yulinling/workflow/task/ScheduledTask.java index be2b818..cd98c4e 100644 --- a/src/main/java/asia/yulinling/workflow/task/ScheduledTask.java +++ b/src/main/java/asia/yulinling/workflow/task/ScheduledTask.java @@ -1,8 +1,9 @@ package asia.yulinling.workflow.task; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + /** *

* 定时任务 diff --git a/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java b/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java index 860236e..232e022 100644 --- a/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java +++ b/src/main/java/asia/yulinling/workflow/task/WebSocketTask.java @@ -22,8 +22,8 @@ import java.util.Date; public class WebSocketTask { private final SimpMessagingTemplate simpMessagingTemplate; -// @Scheduled(fixedRate = 1000) - public void sendMessage() throws Exception{ + // @Scheduled(fixedRate = 1000) + public void sendMessage() throws Exception { log.info("【推送消息】开始执行:{}", DateUtil.formatDateTime(new Date())); simpMessagingTemplate.convertAndSend("test", "1"); log.info("【推送消息】执行结束:{}", DateUtil.formatDateTime(new Date())); diff --git a/src/main/resources/db/test.sql b/src/main/resources/db/test.sql index 46e1247..464c8ba 100644 --- a/src/main/resources/db/test.sql +++ b/src/main/resources/db/test.sql @@ -1,6 +1,11 @@ -SELECT * FROM wk_notes; -SELECT * FROM wk_attachments; -SELECT * FROM wk_note_tags; -SELECT * FROM wk_tags; -SELECT * FROM wk_notebooks; +SELECT * +FROM wk_notes; +SELECT * +FROM wk_attachments; +SELECT * +FROM wk_note_tags; +SELECT * +FROM wk_tags; +SELECT * +FROM wk_notebooks; diff --git a/src/main/resources/email/test.html b/src/main/resources/email/test.html index 6d3140b..f2e365f 100644 --- a/src/main/resources/email/test.html +++ b/src/main/resources/email/test.html @@ -12,7 +12,7 @@ - + Spring Boot入门首选 diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 9df9757..aaa2b78 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -2,9 +2,9 @@ - - - + + + diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html index 0794d8e..36f409d 100644 --- a/src/main/resources/templates/error.html +++ b/src/main/resources/templates/error.html @@ -1,5 +1,5 @@ - + 统一页面异常处理 diff --git a/src/main/resources/templates/welcome.html b/src/main/resources/templates/welcome.html index 8cb8bd9..fcbdcc6 100644 --- a/src/main/resources/templates/welcome.html +++ b/src/main/resources/templates/welcome.html @@ -12,7 +12,7 @@ - + Spring Boot入门首选 diff --git a/src/test/java/asia/yulinling/workflow/service/EmailServiceTest.java b/src/test/java/asia/yulinling/workflow/service/EmailServiceTest.java index ad9149f..3ce75b8 100644 --- a/src/test/java/asia/yulinling/workflow/service/EmailServiceTest.java +++ b/src/test/java/asia/yulinling/workflow/service/EmailServiceTest.java @@ -14,7 +14,7 @@ import java.net.URL; /** *

- * 邮件测试 + * 邮件测试 *

* * @author yulinling diff --git a/src/test/java/asia/yulinling/workflow/utils/RedisTest.java b/src/test/java/asia/yulinling/workflow/utils/RedisTest.java index e4e061c..ab85128 100644 --- a/src/test/java/asia/yulinling/workflow/utils/RedisTest.java +++ b/src/test/java/asia/yulinling/workflow/utils/RedisTest.java @@ -67,9 +67,9 @@ public class RedisTest extends WorkFlowMainTests { @Test public void testRedis() { UserDetails user = User.withUsername("test") - .password("test") - .roles("USER") - .build(); + .password("test") + .roles("USER") + .build(); Authentication authentication = new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities()); String token = jwtUtil.generateToken(authentication, false); assertNotNull(token);