From 9dc60a9b53c35566da3de7bb1de988e0585181c9 Mon Sep 17 00:00:00 2001 From: tanghc Date: Wed, 3 Apr 2019 18:01:55 +0800 Subject: [PATCH] =?UTF-8?q?admin=E5=90=8E=E5=8F=B0=E7=99=BB=E5=BD=95token?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sop/adminserver/config/WebConfig.java | 22 ++++++++++++++++++- .../interceptor/LoginInterceptor.java | 9 -------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java index d427edfa..ad95ab65 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/config/WebConfig.java @@ -3,19 +3,24 @@ package com.gitee.sop.adminserver.config; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.gitee.easyopen.ApiConfig; +import com.gitee.easyopen.ApiParam; +import com.gitee.easyopen.ApiParamParser; +import com.gitee.easyopen.ParamNames; import com.gitee.easyopen.interceptor.ApiInterceptor; import com.gitee.easyopen.session.ApiSessionManager; import com.gitee.sop.adminserver.interceptor.LoginInterceptor; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +import javax.servlet.http.HttpServletRequest; + /** * @author thc @@ -23,6 +28,8 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupp @Configuration public class WebConfig extends WebMvcConfigurationSupport { + public static final String HEADER_TOKEN_NAME = ParamNames.ACCESS_TOKEN_NAME; + @Value("${admin.access-token.timeout-minutes}") private String accessTokenTimeout; @@ -39,6 +46,19 @@ public class WebConfig extends WebMvcConfigurationSupport { apiConfig.setSessionManager(apiSessionManager); // 登录拦截器 apiConfig.setInterceptors(new ApiInterceptor[]{new LoginInterceptor()}); + + apiConfig.setParamParser(new ApiParamParser() { + @Override + public ApiParam parse(HttpServletRequest request) { + ApiParam param = super.parse(request); + String accessToken = request.getHeader(HEADER_TOKEN_NAME); + if (StringUtils.isNotBlank(accessToken)) { + param.put(ParamNames.ACCESS_TOKEN_NAME, accessToken); + } + return param; + } + }); + return apiConfig; } diff --git a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LoginInterceptor.java b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LoginInterceptor.java index aeb0938f..657878ec 100644 --- a/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LoginInterceptor.java +++ b/sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/interceptor/LoginInterceptor.java @@ -1,12 +1,9 @@ package com.gitee.sop.adminserver.interceptor; -import com.gitee.easyopen.ApiContext; import com.gitee.easyopen.ApiMeta; -import com.gitee.easyopen.ParamNames; import com.gitee.easyopen.interceptor.ApiInterceptorAdapter; import com.gitee.sop.adminserver.common.AdminErrors; import com.gitee.sop.adminserver.common.WebContext; -import org.apache.commons.lang.StringUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -18,15 +15,9 @@ import javax.servlet.http.HttpServletResponse; */ public class LoginInterceptor extends ApiInterceptorAdapter { - public static final String HEADER_TOKEN_NAME = ParamNames.ACCESS_TOKEN_NAME; - @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object serviceObj, Object argu) throws Exception { - String accessToken = request.getHeader(HEADER_TOKEN_NAME); - if (StringUtils.isNotBlank(accessToken)) { - ApiContext.getApiParam().put(ParamNames.ACCESS_TOKEN_NAME, accessToken); - } if (WebContext.getInstance().getLoginUser() != null) { return true; } else {