|
|
@@ -44,37 +44,53 @@ public class JwtAuthenticationInterceptor implements HandlerInterceptor {
|
|
|
//endregion
|
|
|
|
|
|
//除了登录和注册接口不需要user_head和token请求头外其他时候基本都要请求头
|
|
|
- if(request.getHeader("user_head") == null){
|
|
|
- //region 自定义返回响应的json格式
|
|
|
- //加上这个可以让浏览器那里得到浏览器的401:response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
+// if(request.getHeader("user_head") == null){
|
|
|
+// //region 自定义返回响应的json格式
|
|
|
+// //加上这个可以让浏览器那里得到浏览器的401:response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
+// response.setCharacterEncoding("UTF-8");
|
|
|
+// response.setContentType("application/json; charset=utf-8");
|
|
|
+// JSONObject res = new JSONObject();
|
|
|
+// res.put("code", ResponseStatusEnum.MISSING_REQUEST_HEADER.getStatus());
|
|
|
+// res.put("message", ResponseStatusEnum.MISSING_REQUEST_HEADER.getMsg());
|
|
|
+// res.put("success", false);
|
|
|
+// PrintWriter out = null;
|
|
|
+// out = response.getWriter();
|
|
|
+// out.write(res.toString());
|
|
|
+// out.flush();
|
|
|
+// out.close();
|
|
|
+// //endregion
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+
|
|
|
+ //region 获取url传递的参数 Query string传递的参数
|
|
|
+ //获取url参数 getParameter方法里的参数名和定义的参数名一致
|
|
|
+ String token = request.getHeader("token");
|
|
|
+ // 验证userToken
|
|
|
+ if (!StringUtils.hasText(token)) {
|
|
|
+ throw new MyCustomException(ResponseStatusEnum.SYSTEM_TOKEN_ERROR);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 解析token
|
|
|
+ try {
|
|
|
+ Map<String, Claim> stringClaimMap = JWTUtil.verifyToken(token);
|
|
|
+ if (ObjectUtils.isNotEmpty(stringClaimMap)) { // 登录
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
response.setContentType("application/json; charset=utf-8");
|
|
|
JSONObject res = new JSONObject();
|
|
|
- res.put("code", ResponseStatusEnum.MISSING_REQUEST_HEADER.getStatus());
|
|
|
- res.put("message", ResponseStatusEnum.MISSING_REQUEST_HEADER.getMsg());
|
|
|
+ res.put("code", ResponseStatusEnum.SYSTEM_LOGIN_ERROR.getStatus());
|
|
|
+ res.put("message", ResponseStatusEnum.SYSTEM_LOGIN_ERROR.getMsg());
|
|
|
res.put("success", false);
|
|
|
PrintWriter out = null;
|
|
|
out = response.getWriter();
|
|
|
out.write(res.toString());
|
|
|
out.flush();
|
|
|
out.close();
|
|
|
- //endregion
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- //region 获取url传递的参数 Query string传递的参数
|
|
|
- //获取url参数 getParameter方法里的参数名和定义的参数名一致
|
|
|
- String token = request.getHeader("token");
|
|
|
- // 验证userToken
|
|
|
- if (!StringUtils.hasText(token)) {
|
|
|
- throw new MyCustomException(ResponseStatusEnum.SYSTEM_TOKEN_ERROR);
|
|
|
- }
|
|
|
-
|
|
|
- // 解析token
|
|
|
- Map<String, Claim> stringClaimMap = JWTUtil.verifyToken(token);
|
|
|
- if (ObjectUtils.isNotEmpty(stringClaimMap)) { // 登录
|
|
|
- return true;
|
|
|
- }
|
|
|
//endregion
|
|
|
|
|
|
//region 自定义返回响应的json格式
|