From e04238f0c903a0c30594d74356b303ca295f8ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Thu, 16 Apr 2020 23:26:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/filter/AuthenticationFilter.java | 6 ++++++ .../cn/celess/blog/filter/AuthorizationFilter.java | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java b/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java index b72b38a..3734b13 100644 --- a/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java +++ b/src/main/java/cn/celess/blog/configuration/filter/AuthenticationFilter.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -63,6 +64,11 @@ public class AuthenticationFilter implements HandlerInterceptor { return writeResponse(ResponseEnum.LOGIN_EXPIRED, response, request); } String role = userService.getUserRoleByEmail(email); + if (role.equals(ROLE_USER) || role.equals(ROLE_ADMIN)) { + // 更新token + String token = jwtUtil.updateTokenDate(jwtStr); + response.setHeader("Authorization",token); + } if (role.equals(ROLE_ADMIN)) { // admin return true; diff --git a/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java b/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java index 0ff4b3a..0249fba 100644 --- a/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java +++ b/src/test/java/cn/celess/blog/filter/AuthorizationFilter.java @@ -61,4 +61,16 @@ public class AuthorizationFilter extends BaseTest { assertEquals(HAVE_NOT_LOG_IN.getCode(), object.getInt(Code)); }); } + + @Test + public void authorizationTest() throws Exception { + // 测试response中有无Authorization字段 + String s = userLogin(); + mockMvc.perform(get("/user/userInfo").header("Authorization", s)).andDo(result -> { + JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); + assertEquals(SUCCESS.getCode(), object.getInt(Code)); + assertNotNull(result.getResponse().getHeader("Authorization")); + assertNotEquals(s, result.getResponse().getHeader("Authorization")); + }); + } }