From 0c52d3e75cd62d17b136f1fe66ee069f06b35cf3 Mon Sep 17 00:00:00 2001 From: iizmg Date: Tue, 26 May 2020 09:24:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=8E=B7=E5=BE=97token?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/itkk/udf/api/common/CommonUtil.java | 44 ++++++++++--------- .../page/auth/CommonHandlerInterceptor.java | 4 +- .../api/rbac/auth/WebHandlerInterceptor.java | 4 +- .../org/itkk/udf/starter/core/CoreUtil.java | 27 ------------ 4 files changed, 28 insertions(+), 51 deletions(-) diff --git a/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java b/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java index 7e885ce..89759ea 100644 --- a/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java +++ b/udf-api/udf-api-common/src/main/java/org/itkk/udf/api/common/CommonUtil.java @@ -2,6 +2,7 @@ package org.itkk.udf.api.common; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.itkk.udf.api.common.dto.UserDto; import org.itkk.udf.starter.core.exception.AuthException; @@ -9,7 +10,6 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; -import java.util.Optional; /** * 工具类 @@ -38,27 +38,26 @@ public class CommonUtil { * @return String */ public static String getToken(HttpServletRequest request) { - Object tokenObj = request.getAttribute(CommonConstant.PARAMETER_NAME_TOKEN); - if (tokenObj == null) { - throw new AuthException("token信息不存在"); - } - return (String) tokenObj; - } - - /** - * 从cookie中获得token - * - * @param request request - * @return String - */ - public static String getTokenByCookie(HttpServletRequest request) { - if (ArrayUtils.isNotEmpty(request.getCookies())) { - Optional cookie = Arrays.stream(request.getCookies()).filter(a -> a.getName().equals(CommonConstant.PARAMETER_NAME_TOKEN)).findFirst(); - if (cookie.isPresent()) { - return cookie.get().getValue(); + //从url参数获得 + String token = request.getParameter(CommonConstant.PARAMETER_NAME_TOKEN); + if (StringUtils.isBlank(token)) { + //从header获得 + token = request.getHeader(CommonConstant.PARAMETER_NAME_TOKEN); + //从作用域中获得 + if (StringUtils.isBlank(token)) { + token = request.getAttribute(CommonConstant.PARAMETER_NAME_TOKEN) == null ? null : request.getAttribute(CommonConstant.PARAMETER_NAME_TOKEN).toString(); + //从cookie中获得 + if (StringUtils.isBlank(token)) { + token = ArrayUtils.isEmpty(request.getCookies()) ? null : Arrays.stream(request.getCookies()).filter(a -> a.getName().equals(CommonConstant.PARAMETER_NAME_TOKEN)).map(Cookie::getValue).findFirst().orElse(null); + //从其他地方获得 + if (StringUtils.isBlank(token)) { + //从其他地方获得 + } + } } } - return null; + //返回 + return token; } /** @@ -81,4 +80,9 @@ public class CommonUtil { private CommonUtil() { } + + public static void main(String[] args) { + String[] a = null; + Arrays.stream(a); + } } diff --git a/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/auth/CommonHandlerInterceptor.java b/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/auth/CommonHandlerInterceptor.java index 499ceb8..ca0bd52 100644 --- a/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/auth/CommonHandlerInterceptor.java +++ b/udf-api/udf-api-page/src/main/java/org/itkk/udf/api/page/auth/CommonHandlerInterceptor.java @@ -28,11 +28,11 @@ public class CommonHandlerInterceptor implements HandlerInterceptor { //判空 if (modelAndView != null) { //获得用户信息 - UserDto userDto = iUserService.infoByToken(CommonUtil.getTokenByCookie(request)); + UserDto userDto = iUserService.infoByToken(CommonUtil.getToken(request)); //判断是否登陆 if (userDto != null) { //放入token - modelAndView.addObject(CommonConstant.PARAMETER_NAME_TOKEN, CommonUtil.getTokenByCookie(request)); + modelAndView.addObject(CommonConstant.PARAMETER_NAME_TOKEN, CommonUtil.getToken(request)); //放入用户信息 modelAndView.addObject(CommonConstant.PARAMETER_NAME_TOKEN_INFO, userDto); } diff --git a/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/auth/WebHandlerInterceptor.java b/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/auth/WebHandlerInterceptor.java index 6fb53cd..836c844 100644 --- a/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/auth/WebHandlerInterceptor.java +++ b/udf-api/udf-api-rbac/src/main/java/org/itkk/udf/api/rbac/auth/WebHandlerInterceptor.java @@ -4,10 +4,10 @@ package org.itkk.udf.api.rbac.auth; import lombok.extern.slf4j.Slf4j; import org.itkk.udf.api.common.CommonConstant; import org.itkk.udf.api.common.CommonProperties; +import org.itkk.udf.api.common.CommonUtil; import org.itkk.udf.api.common.dto.UserDto; import org.itkk.udf.api.common.service.IUserService; import org.itkk.udf.starter.cache.db.service.DbCacheService; -import org.itkk.udf.starter.core.CoreUtil; import org.itkk.udf.starter.core.exception.AuthException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; @@ -43,7 +43,7 @@ public class WebHandlerInterceptor implements HandlerInterceptor { //排除options if (!HttpMethod.OPTIONS.toString().equals(request.getMethod())) { //获得token - final String token = CoreUtil.getParameter(request, CommonConstant.PARAMETER_NAME_TOKEN); + final String token = CommonUtil.getToken(request); //获得tokenInfo UserDto userDto = iUserService.infoByToken(token); //判空 diff --git a/udf-starter/udf-starter-core/src/main/java/org/itkk/udf/starter/core/CoreUtil.java b/udf-starter/udf-starter-core/src/main/java/org/itkk/udf/starter/core/CoreUtil.java index 46e7262..75c9781 100644 --- a/udf-starter/udf-starter-core/src/main/java/org/itkk/udf/starter/core/CoreUtil.java +++ b/udf-starter/udf-starter-core/src/main/java/org/itkk/udf/starter/core/CoreUtil.java @@ -433,33 +433,6 @@ public class CoreUtil { return null; } - /** - * 获得参数(先从问号后面取,如果为空,再从header里取,如果为空,从作用域中取,如果都为空,则返回null) - * - * @param request request - * @param parameterName parameterName - * @return String - */ - public static String getParameter(HttpServletRequest request, String parameterName) { - //获得token - String token = request.getParameter(parameterName); - if (StringUtils.isBlank(token)) { - token = request.getHeader(parameterName); - if (StringUtils.isBlank(token)) { - Object tokenObj = request.getAttribute(parameterName); - if (tokenObj != null) { - token = tokenObj.toString(); - } - } - } - //返回 - return token; - } - - public static void main(String[] args) throws UnknownHostException { - System.out.println(getLocalHostLANAddress().getHostAddress()); - } - /** * 获得局域网IP地址 *