From 4a05ce23eed73dd5e1a9cfb3ed0fdf29738fd6ba Mon Sep 17 00:00:00 2001 From: HuangXin Date: Wed, 6 May 2020 16:23:02 +0800 Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=20=E5=A2=9E=E5=8A=A0=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=99=A8=E6=A0=A1=E9=AA=8CToken=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/dispose/common/ConstValue.java | 2 +- .../java/com/dispose/config/TokenConfig.java | 22 +++++++++++ .../dispose/interceptor/TokenInterceptor.java | 38 +++++++++++++++++++ .../com/dispose/pojo/dto/ProtocolReqDTO.java | 2 +- 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/dispose/config/TokenConfig.java create mode 100644 src/main/java/com/dispose/interceptor/TokenInterceptor.java diff --git a/src/main/java/com/dispose/common/ConstValue.java b/src/main/java/com/dispose/common/ConstValue.java index caded90a..6366fe38 100644 --- a/src/main/java/com/dispose/common/ConstValue.java +++ b/src/main/java/com/dispose/common/ConstValue.java @@ -24,7 +24,7 @@ public class ConstValue { /** * The constant IS_VERIFY_TOKEN. */ - public static final boolean IS_VERIFY_TOKEN = false; + public static final boolean IS_VERIFY_TOKEN = true; /** * The constant TOKEN_EXPIRED_TIME_MS. */ diff --git a/src/main/java/com/dispose/config/TokenConfig.java b/src/main/java/com/dispose/config/TokenConfig.java new file mode 100644 index 00000000..7eb43c2b --- /dev/null +++ b/src/main/java/com/dispose/config/TokenConfig.java @@ -0,0 +1,22 @@ +package com.dispose.config; + +import com.dispose.interceptor.TokenInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class TokenConfig implements WebMvcConfigurer { + @Bean + public TokenInterceptor initAuthInterceptor(){ + return new TokenInterceptor(); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/information/**"); + registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/manager/**"); + registry.addInterceptor(initAuthInterceptor()).addPathPatterns("/task/**"); + } +} diff --git a/src/main/java/com/dispose/interceptor/TokenInterceptor.java b/src/main/java/com/dispose/interceptor/TokenInterceptor.java new file mode 100644 index 00000000..09c69394 --- /dev/null +++ b/src/main/java/com/dispose/interceptor/TokenInterceptor.java @@ -0,0 +1,38 @@ +package com.dispose.interceptor; + +import com.dispose.common.ErrorCode; +import com.dispose.pojo.dto.ProtocolRespDTO; +import com.dispose.service.UserAccountService; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Objects; + +@Slf4j +public class TokenInterceptor implements HandlerInterceptor { + @Resource + private UserAccountService userAccountService; + + @Override + public boolean preHandle(HttpServletRequest request, + HttpServletResponse response, + Object handler) throws Exception { + String token = Objects.requireNonNull(request.getHeader("Authorization").replaceFirst("Bearer ", "")); + + ErrorCode err = userAccountService.authTokenCheck(token); + + if (err != ErrorCode.ERR_OK) { + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/json;charset=UTF-8"); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.getWriter().write(new ObjectMapper().writeValueAsString(ProtocolRespDTO.result(err))); + return false; + } + + return true; + } +} diff --git a/src/main/java/com/dispose/pojo/dto/ProtocolReqDTO.java b/src/main/java/com/dispose/pojo/dto/ProtocolReqDTO.java index 9f9de9d1..d1d18eca 100644 --- a/src/main/java/com/dispose/pojo/dto/ProtocolReqDTO.java +++ b/src/main/java/com/dispose/pojo/dto/ProtocolReqDTO.java @@ -28,7 +28,7 @@ public class ProtocolReqDTO extends ProtocolDTO { /** * The constant token. */ - private static String token; + private static String token = ""; /** * Gets request object.