diff --git a/dolphin-commons/dolphin-common-core/pom.xml b/dolphin-commons/dolphin-common-core/pom.xml
index b66d716..3086df4 100644
--- a/dolphin-commons/dolphin-common-core/pom.xml
+++ b/dolphin-commons/dolphin-common-core/pom.xml
@@ -12,14 +12,17 @@
jar
+
org.springframework.boot
spring-boot-starter-web
+
cn.hutool.v7
hutool-all
+
org.projectlombok
lombok
diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/constants/Constants.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/constants/Constants.java
index cce7b0a..9ece4e6 100644
--- a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/constants/Constants.java
+++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/constants/Constants.java
@@ -1,8 +1,4 @@
package day.gitlab.dolphin.common.core.constants;
public class Constants {
-
- public static final String SUCCESS = "success";
-
- public static final String FAILURE = "failure";
}
diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/Result.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/Result.java
index e357c32..089f7d7 100644
--- a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/Result.java
+++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/entity/Result.java
@@ -2,54 +2,62 @@ package day.gitlab.dolphin.common.core.entity;
import day.gitlab.dolphin.common.core.exception.BusinessException;
import lombok.AllArgsConstructor;
-import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
-import java.util.function.Supplier;
-
-import static day.gitlab.dolphin.common.core.constants.Constants.FAILURE;
-import static day.gitlab.dolphin.common.core.constants.Constants.SUCCESS;
-
@Data
-@Builder
@NoArgsConstructor
@AllArgsConstructor
-public class Result {
+public class Result {
- private int code;
+ public static final String SUCCESS = "00000000";
+ public static final String FAILURE = "99999999";
+ public static final String SUCCESS_MESSAGE = "success";
+ public static final String FAILURE_MESSAGE = "failure";
+
+ private String code;
private String message;
+ private T data;
+ private long timestamp;
- private Object data;
+ // ========== 通用响应方法 ==========
- public static Result success() {
- return Result.builder().code(200).message(SUCCESS).build();
+ public static Result result(String code, String message, T data) {
+ return new Result<>(code, message, data, System.currentTimeMillis());
}
- public static Result success(Object data) {
- Result result = Result.builder().code(200).message(SUCCESS).build();
- if (data instanceof Supplier) {
- result.setData(((Supplier>) data).get());
- } else {
- result.setData(data);
- }
- return result;
+ // ========== 成功响应方法 ==========
+
+ public static Result success() {
+ return result(SUCCESS, SUCCESS_MESSAGE, null);
}
- public static Result failure() {
- return Result.builder().code(500).message(FAILURE).build();
+ public static Result success(T data) {
+ return result(SUCCESS, SUCCESS_MESSAGE, data);
}
- public static Result failure(String message) {
- return Result.builder().code(500).message(message).build();
+ public static Result success(String message, T data) {
+ return result(SUCCESS, message, data);
}
- public static Result failure(int code, String message) {
- return Result.builder().code(code).message(message).build();
+ // ========== 失败响应方法 ==========
+
+ public static Result failure() {
+ return result(FAILURE, FAILURE_MESSAGE, null);
}
- public static Result failure(BusinessException businessException) {
- return Result.builder().code(businessException.getCode()).message(businessException.getMessage()).build();
+ public static Result failure(String message) {
+ return result(FAILURE, message, null);
+ }
+
+ public static Result failure(String code, String message) {
+ return result(code, message, null);
+ }
+
+ // ========== 异常响应方法 ==========
+
+ public static Result failure(BusinessException e) {
+ return result(e.getCode(), e.getMessage(), null);
}
}
diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/BusinessException.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/BusinessException.java
index f7270cd..6a710eb 100644
--- a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/BusinessException.java
+++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/BusinessException.java
@@ -5,14 +5,9 @@ import lombok.Getter;
@Getter
public class BusinessException extends RuntimeException {
- private final int code;
+ private final String code;
- public BusinessException(String message) {
- super(message);
- this.code = 500;
- }
-
- public BusinessException(int code, String message) {
+ public BusinessException(String code, String message) {
super(message);
this.code = code;
}
diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java
index 6ecc4e5..a3a5395 100644
--- a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java
+++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java
@@ -8,12 +8,12 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
public class GlobalExceptionHandler {
@ExceptionHandler(value = BusinessException.class)
- public Result handleBusinessException(BusinessException e) {
+ public Result handleBusinessException(BusinessException e) {
return Result.failure(e);
}
@ExceptionHandler(value = Exception.class)
- public Result handleException(Exception e) {
+ public Result handleException(Exception e) {
return Result.failure(e.getMessage());
}
}
diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/i18n/MessagesConfiguration.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/i18n/MessagesConfiguration.java
new file mode 100644
index 0000000..4b2c72a
--- /dev/null
+++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/i18n/MessagesConfiguration.java
@@ -0,0 +1,29 @@
+package day.gitlab.dolphin.common.core.i18n;
+
+import org.springframework.context.MessageSource;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.support.ResourceBundleMessageSource;
+import org.springframework.web.servlet.LocaleResolver;
+import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
+
+import java.util.Locale;
+
+@Configuration
+public class MessagesConfiguration {
+
+ @Bean
+ public MessageSource messageSource() {
+ ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
+ messageSource.setBasename("i18n.messages");
+ messageSource.setDefaultEncoding("UTF-8");
+ return messageSource;
+ }
+
+ @Bean
+ public LocaleResolver localeResolver() {
+ AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
+ localeResolver.setDefaultLocale(Locale.ENGLISH);
+ return localeResolver;
+ }
+}
diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/i18n/MessagesHelper.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/i18n/MessagesHelper.java
new file mode 100644
index 0000000..94aa084
--- /dev/null
+++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/i18n/MessagesHelper.java
@@ -0,0 +1,51 @@
+package day.gitlab.dolphin.common.core.i18n;
+
+import day.gitlab.dolphin.common.core.entity.Result;
+import day.gitlab.dolphin.common.core.exception.BusinessException;
+import lombok.Getter;
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.stereotype.Component;
+
+import java.util.Locale;
+
+@Getter
+@Component
+public class MessagesHelper {
+
+ private final MessageSource messageSource;
+
+ public MessagesHelper(MessageSource messageSource) {
+ this.messageSource = messageSource;
+ }
+
+ // ========== 国际化消息 ==========
+
+ public Locale getCurrentLocale() {
+ return LocaleContextHolder.getLocale();
+ }
+
+ public String getMessage(String code, Object... args) {
+ return messageSource.getMessage(code, args, getCurrentLocale());
+ }
+
+ public String getMessage(String code, String defaultMessage, Object... args) {
+ return messageSource.getMessage(code, args, defaultMessage, getCurrentLocale());
+ }
+
+ // ========== 成功响应方法 ==========
+
+ public Result success() {
+ return Result.success();
+ }
+
+ public Result success(T data) {
+ return Result.success(data);
+ }
+
+ // ========== 业务异常快捷方法 ==========
+
+ public BusinessException newBusinessException(String code, Object... args) {
+ return new BusinessException(code, getMessage(code, args));
+ }
+}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java
index 9a4b0cd..87c9222 100644
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java
+++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java
@@ -48,7 +48,7 @@ public class AuthenticationFilter extends OncePerRequestFilter {
SecurityContextHolder.setAuthentication(initialize);
filterChain.doFilter(request, response);
} catch (BusinessException e) {
- response.setStatus(e.getCode());
+ response.setStatus(200);
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new ObjectMapper().writeValueAsString(Result.failure(e)));
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityCheckAspect.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityCheckAspect.java
index 7357b5e..9a42886 100644
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityCheckAspect.java
+++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityCheckAspect.java
@@ -1,31 +1,38 @@
package day.gitlab.dolphin.common.security.annotation;
+import day.gitlab.dolphin.common.core.i18n.MessagesHelper;
import day.gitlab.dolphin.common.security.Authentication;
import day.gitlab.dolphin.common.security.SecurityContextHolder;
-import day.gitlab.dolphin.common.security.exception.NotAuthorityException;
-import day.gitlab.dolphin.common.security.exception.NotLoginException;
+import day.gitlab.dolphin.common.security.constants.Exceptions;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
+import org.springframework.stereotype.Component;
@Aspect
+@Component
public class AuthorityCheckAspect {
+ private final MessagesHelper messagesHelper;
+
+ public AuthorityCheckAspect(MessagesHelper messagesHelper) {
+ this.messagesHelper = messagesHelper;
+ }
+
@Before("@annotation(authorityCheck)")
public void check(JoinPoint joinPoint, AuthorityCheck authorityCheck) {
Authentication authentication = SecurityContextHolder.getAuthentication();
if (authentication == null) {
- throw new NotLoginException();
+ throw messagesHelper.newBusinessException(Exceptions.NOT_LOGIN);
}
- // AuthorityCheck的type如果是AND,输出1
if (authorityCheck.type() == AuthorityType.AND) {
if (!authentication.hasAllAuthorities(authorityCheck.value())) {
- throw new NotAuthorityException(authorityCheck.value());
+ throw messagesHelper.newBusinessException(Exceptions.NOT_AUTHORITY);
}
} else if (authorityCheck.type() == AuthorityType.OR) {
if (!authentication.hasAnyAuthorities(authorityCheck.value())) {
- throw new NotAuthorityException(authorityCheck.value());
+ throw messagesHelper.newBusinessException(Exceptions.NOT_AUTHORITY);
}
}
}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/constants/Exceptions.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/constants/Exceptions.java
new file mode 100644
index 0000000..db6973c
--- /dev/null
+++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/constants/Exceptions.java
@@ -0,0 +1,12 @@
+package day.gitlab.dolphin.common.security.constants;
+
+public class Exceptions {
+
+ public static final String NOT_LOGIN = "00010001";
+
+ public static final String TOKEN_INVALID = "00010002";
+
+ public static final String TOKEN_EXPIRED = "00010003";
+
+ public static final String NOT_AUTHORITY = "00010004";
+}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/AuthenticationException.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/AuthenticationException.java
deleted file mode 100644
index 239cc07..0000000
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/AuthenticationException.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package day.gitlab.dolphin.common.security.exception;
-
-import day.gitlab.dolphin.common.core.exception.BusinessException;
-import lombok.Getter;
-
-@Getter
-public class AuthenticationException extends BusinessException {
-
- public AuthenticationException(int code, String message) {
- super(code, message);
- }
-}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/InvalidTokenException.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/InvalidTokenException.java
deleted file mode 100644
index 5210b02..0000000
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/InvalidTokenException.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package day.gitlab.dolphin.common.security.exception;
-
-import lombok.Getter;
-
-@Getter
-public class InvalidTokenException extends AuthenticationException {
-
- private final String token;
-
- public InvalidTokenException(String token) {
- super(401, "Unauthorized: Invalid token");
- this.token = token;
- }
-}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/NotAuthorityException.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/NotAuthorityException.java
deleted file mode 100644
index 1928c3a..0000000
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/NotAuthorityException.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package day.gitlab.dolphin.common.security.exception;
-
-import lombok.Getter;
-
-@Getter
-public class NotAuthorityException extends AuthenticationException {
-
- private final String[] userAuthorities;
-
- public NotAuthorityException(String[] userAuthorities) {
- super(403, "Forbidden: Insufficient permissions");
- this.userAuthorities = userAuthorities;
- }
-}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/NotLoginException.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/NotLoginException.java
deleted file mode 100644
index a36d7de..0000000
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/NotLoginException.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package day.gitlab.dolphin.common.security.exception;
-
-public class NotLoginException extends AuthenticationException{
-
- public NotLoginException() {
- super(401, "Unauthorized");
- }
-}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/TokenExpiredException.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/TokenExpiredException.java
deleted file mode 100644
index d757d5b..0000000
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/exception/TokenExpiredException.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package day.gitlab.dolphin.common.security.exception;
-
-import lombok.Getter;
-
-import java.util.Date;
-
-@Getter
-public class TokenExpiredException extends AuthenticationException {
-
- private final String token;
-
- private final Date expiration;
-
- public TokenExpiredException(String token, Date expiration) {
- super(401, "Unauthorized: Token expired");
- this.token = token;
- this.expiration = expiration;
- }
-
-}
diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/JwtAuthenticationInitialize.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/JwtAuthenticationInitialize.java
index c56c48a..a1c7b39 100644
--- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/JwtAuthenticationInitialize.java
+++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/JwtAuthenticationInitialize.java
@@ -1,14 +1,13 @@
package day.gitlab.dolphin.common.security.jwt;
import com.fasterxml.jackson.databind.ObjectMapper;
+import day.gitlab.dolphin.common.core.i18n.MessagesHelper;
import day.gitlab.dolphin.common.security.Authentication;
import day.gitlab.dolphin.common.security.AuthenticationInitialize;
import day.gitlab.dolphin.common.security.AuthenticationProvider;
import day.gitlab.dolphin.common.security.UserPrincipal;
import day.gitlab.dolphin.common.security.config.SecurityConfig;
-import day.gitlab.dolphin.common.security.exception.InvalidTokenException;
-import day.gitlab.dolphin.common.security.exception.NotLoginException;
-import day.gitlab.dolphin.common.security.exception.TokenExpiredException;
+import day.gitlab.dolphin.common.security.constants.Exceptions;
import io.jsonwebtoken.Claims;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.data.redis.core.StringRedisTemplate;
@@ -29,12 +28,16 @@ public class JwtAuthenticationInitialize implements AuthenticationInitialize {
private final AuthenticationProvider authenticationProvider;
+ private final MessagesHelper messagesHelper;
+
public JwtAuthenticationInitialize(SecurityConfig securityConfig,
StringRedisTemplate stringRedisTemplate,
- AuthenticationProvider authenticationProvider) {
+ AuthenticationProvider authenticationProvider,
+ MessagesHelper messagesHelper) {
this.securityConfig = securityConfig;
this.stringRedisTemplate = stringRedisTemplate;
this.authenticationProvider = authenticationProvider;
+ this.messagesHelper = messagesHelper;
}
@Override
@@ -44,7 +47,7 @@ public class JwtAuthenticationInitialize implements AuthenticationInitialize {
// 1、获取Token
String token = jwt.getTokenFromRequest(request);
if (token == null) {
- throw new NotLoginException();
+ throw messagesHelper.newBusinessException(Exceptions.NOT_LOGIN);
}
// 2、解析Token,获取用户ID
String userId;
@@ -56,11 +59,11 @@ public class JwtAuthenticationInitialize implements AuthenticationInitialize {
Objects.requireNonNull(userId);
Objects.requireNonNull(expiration);
} catch (Exception e) {
- throw new InvalidTokenException(token);
+ throw messagesHelper.newBusinessException(Exceptions.TOKEN_INVALID);
}
// 3、判断是否过期
if (expiration.before(new Date())) {
- throw new TokenExpiredException(token, expiration);
+ throw messagesHelper.newBusinessException(Exceptions.TOKEN_EXPIRED);
}
// 4、从Redis或数据库中加载用户信息
UserPrincipal userPrincipal;
@@ -83,7 +86,7 @@ public class JwtAuthenticationInitialize implements AuthenticationInitialize {
userAuthorities = list.stream().map(Object::toString).collect(Collectors.toList());
}
} catch (Exception e) {
- throw new InvalidTokenException(token);
+ throw messagesHelper.newBusinessException(Exceptions.TOKEN_INVALID);
}
return new Authentication(userPrincipal, userAuthorities);
diff --git a/dolphin-compose/src/main/resources/i18n/messages.properties b/dolphin-compose/src/main/resources/i18n/messages.properties
new file mode 100644
index 0000000..8a13e00
--- /dev/null
+++ b/dolphin-compose/src/main/resources/i18n/messages.properties
@@ -0,0 +1,8 @@
+00000000=success
+99999999=failure
+00010001=Unauthorized
+00010002=Token invalid
+00010003=Token expired
+00010004=Forbidden
+00010101=Username or password is incorrect
+00010102=User is not enabled
\ No newline at end of file
diff --git a/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties b/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties
new file mode 100644
index 0000000..6d73830
--- /dev/null
+++ b/dolphin-compose/src/main/resources/i18n/messages_zh_CN.properties
@@ -0,0 +1,13 @@
+
+00000000=成功
+99999999=失败
+
+# 00 系统
+# 0001 系统->认证授权
+00010001=未授权
+00010002=Token 无效
+00010003=Token 已过期
+00010004=权限不足
+# 000101 系统->认证授权->登录
+00010101=用户名或密码错误
+00010102=用户已被禁用
diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/constants/Exceptions.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/constants/Exceptions.java
new file mode 100644
index 0000000..c75cea7
--- /dev/null
+++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/constants/Exceptions.java
@@ -0,0 +1,8 @@
+package day.gitlab.dolphin.auth.constants;
+
+public class Exceptions {
+
+ public static final String USERNAME_OR_PASSWORD_INCORRECT = "00010101";
+
+ public static final String USER_NOT_ENABLED = "00010102";
+}
diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java
index 5957b8f..c88683e 100644
--- a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java
+++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java
@@ -1,6 +1,7 @@
package day.gitlab.dolphin.auth.controller;
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
+import day.gitlab.dolphin.auth.entity.vo.LoginVO;
import day.gitlab.dolphin.auth.service.AuthService;
import day.gitlab.dolphin.common.core.entity.Result;
import day.gitlab.dolphin.common.security.annotation.AuthorityIgnore;
@@ -19,7 +20,7 @@ public class AuthController {
@AuthorityIgnore
@PostMapping("/login")
- public Result login(@RequestBody LoginDTO loginDTO) {
+ public Result login(@RequestBody LoginDTO loginDTO) {
return Result.success(authService.login(loginDTO));
}
}
diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java
index cfa0175..ccb0775 100644
--- a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java
+++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java
@@ -1,10 +1,11 @@
package day.gitlab.dolphin.auth.service.impl;
import cn.hutool.v7.crypto.digest.BCrypt;
+import day.gitlab.dolphin.auth.constants.Exceptions;
import day.gitlab.dolphin.auth.entity.dto.LoginDTO;
import day.gitlab.dolphin.auth.entity.vo.LoginVO;
import day.gitlab.dolphin.auth.service.AuthService;
-import day.gitlab.dolphin.common.core.exception.BusinessException;
+import day.gitlab.dolphin.common.core.i18n.MessagesHelper;
import day.gitlab.dolphin.common.security.AuthenticationProvider;
import day.gitlab.dolphin.common.security.UserPrincipal;
import day.gitlab.dolphin.common.security.jwt.JwtInfo;
@@ -28,14 +29,17 @@ public class AuthServiceImpl implements AuthService, AuthenticationProvider {
@Resource
private JwtInfo jwtInfo;
+ @Resource
+ private MessagesHelper messagesHelper;
+
@Override
public LoginVO login(LoginDTO loginDTO) {
User dbUser = userMapper.findByUsername(loginDTO.getUsername());
if (dbUser == null || !BCrypt.checkpw(loginDTO.getPassword(), dbUser.getPassword())) {
- throw new BusinessException("Username or password is incorrect");
+ throw messagesHelper.newBusinessException(Exceptions.USERNAME_OR_PASSWORD_INCORRECT);
}
if (!UserEnabled.ENABLED.equals(dbUser.getEnabled())) {
- throw new BusinessException("User is not enabled");
+ throw messagesHelper.newBusinessException(Exceptions.USER_NOT_ENABLED);
}
return LoginVO.builder()