From b7a2b94bde77d5781131974cca16c31af88f5227 Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Wed, 21 Apr 2021 14:40:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0token=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/TokenAuthenticationFilter.java | 3 +++ .../impl/BaseCacheUserServiceImpl.java | 2 +- .../entity/AuthFailureException.java | 27 +++++++++++++++++++ .../entity/InvalidTokenException.java | 27 ------------------- ...BusinessExceptionHandlerAdviceDefault.java | 8 +++--- .../BusinessExceptionHandlerAdvicePro.java | 8 +++--- 6 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/AuthFailureException.java delete mode 100644 uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/InvalidTokenException.java diff --git a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java index 39e3cc9..2ffe512 100644 --- a/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java +++ b/mall-ebtp-cloud-security-starter/src/main/java/com/chinaunicom/mall/ebtp/cloud/security/starter/filter/TokenAuthenticationFilter.java @@ -76,6 +76,9 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter { private Authentication getAuthentication(final String token, final String currentRoleCode) { SecurityUser securityUser = client.getUserInfo(); + log.info("TokenAuthenticationFilter: token [{}]", token); + log.info("TokenAuthenticationFilter: userid [{}]", securityUser.getUserId()); + // 根据当前角色设定权限列表 List authorities = Optional.ofNullable(securityUser.getAuthorityList()).map(list -> { return list.stream().filter(auth -> StringUtils.equals(auth.getRoleCode(), currentRoleCode)) diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/base/service/impl/BaseCacheUserServiceImpl.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/base/service/impl/BaseCacheUserServiceImpl.java index 068d704..f381645 100644 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/base/service/impl/BaseCacheUserServiceImpl.java +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/base/service/impl/BaseCacheUserServiceImpl.java @@ -33,7 +33,7 @@ public class BaseCacheUserServiceImpl implements IBaseCacheUserService { BeanUtils.copyProperties(SecurityContextHolder.getContext().getAuthentication().getPrincipal(), buser); // if (Objects.isNull(buser.getUserId())) { -// throw new InvalidTokenException("用户验证失败,无效的token!"); +// throw new AuthFailureException("登陆已超期"); // } log.debug("Current user principal: " + buser); } catch (Exception e) { diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/AuthFailureException.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/AuthFailureException.java new file mode 100644 index 0000000..c18ce18 --- /dev/null +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/AuthFailureException.java @@ -0,0 +1,27 @@ +package com.chinaunicom.mall.ebtp.common.exception.entity; + +/** + * 无效的token + * + * @author Ajaxfan + */ +public class AuthFailureException extends RuntimeException { + + private static final long serialVersionUID = 7870600175887301004L; + + public AuthFailureException() { + } + + public AuthFailureException(final String message, final Throwable cause) { + super(message, cause); + } + + public AuthFailureException(final Throwable cause) { + super(cause); + } + + public AuthFailureException(final String message) { + super(message); + } + +} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/InvalidTokenException.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/InvalidTokenException.java deleted file mode 100644 index b5a74f1..0000000 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/entity/InvalidTokenException.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.chinaunicom.mall.ebtp.common.exception.entity; - -/** - * 无效的token - * - * @author Ajaxfan - */ -public class InvalidTokenException extends RuntimeException { - - private static final long serialVersionUID = 7870600175887301004L; - - public InvalidTokenException() { - } - - public InvalidTokenException(final String message, final Throwable cause) { - super(message, cause); - } - - public InvalidTokenException(final Throwable cause) { - super(cause); - } - - public InvalidTokenException(final String message) { - super(message); - } - -} diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdviceDefault.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdviceDefault.java index a3524ad..dfac2ff 100644 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdviceDefault.java +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdviceDefault.java @@ -30,7 +30,7 @@ import org.springframework.web.method.annotation.MethodArgumentTypeMismatchExcep import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.exception.entity.BusinessException; -import com.chinaunicom.mall.ebtp.common.exception.entity.InvalidTokenException; +import com.chinaunicom.mall.ebtp.common.exception.entity.AuthFailureException; import com.chinaunicom.mall.ebtp.common.util.JsonUtils; import cn.hutool.core.convert.Convert; @@ -138,15 +138,15 @@ public class BusinessExceptionHandlerAdviceDefault { * @param exception InvalidTokenException异常对象 * @return 响应 */ - @ExceptionHandler(InvalidTokenException.class) + @ExceptionHandler(AuthFailureException.class) @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) public BaseResponse handleInvalidTokenException(HttpServletRequest request, - InvalidTokenException exception) { + AuthFailureException exception) { Map body = new HashMap<>(); body.put("errors", exception.getMessage()); body.put("error", HttpStatus.UNAUTHORIZED.getReasonPhrase()); // body.put("path", request.getRequestURI()); - return BaseResponse.fail(HttpStatus.UNAUTHORIZED.value(), "用户验证失败,无效的token!", Convert.toStr(body)); + return BaseResponse.fail(HttpStatus.UNAUTHORIZED.value(), "登陆已超期", Convert.toStr(body)); } /** diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvicePro.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvicePro.java index a9dfa0d..91a023c 100644 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvicePro.java +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/exception/service/BusinessExceptionHandlerAdvicePro.java @@ -30,7 +30,7 @@ import org.springframework.web.method.annotation.MethodArgumentTypeMismatchExcep import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.exception.entity.BusinessException; -import com.chinaunicom.mall.ebtp.common.exception.entity.InvalidTokenException; +import com.chinaunicom.mall.ebtp.common.exception.entity.AuthFailureException; import com.chinaunicom.mall.ebtp.common.util.JsonUtils; import cn.hutool.core.convert.Convert; @@ -154,15 +154,15 @@ public class BusinessExceptionHandlerAdvicePro { * @param exception InvalidTokenException异常对象 * @return 响应 */ - @ExceptionHandler(InvalidTokenException.class) + @ExceptionHandler(AuthFailureException.class) @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED) public BaseResponse handleInvalidTokenException(HttpServletRequest request, - InvalidTokenException exception) { + AuthFailureException exception) { Map body = new HashMap<>(); body.put("errors", exception.getMessage()); body.put("error", HttpStatus.UNAUTHORIZED.getReasonPhrase()); // body.put("path", request.getRequestURI()); - return BaseResponse.fail(HttpStatus.UNAUTHORIZED.value(), "用户验证失败,无效的token!", Convert.toStr(body)); + return BaseResponse.fail(HttpStatus.UNAUTHORIZED.value(), "登陆已超期", Convert.toStr(body)); } /**