From e7b3a5e891287b1291d2ac38f7c83d5d73bc7906 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 08 十月 2022 08:49:01 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/interceptor/AuthInterceptor.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 92 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java index 2994796..4e03e05 100644 --- a/src/main/java/com/lf/server/interceptor/AuthInterceptor.java +++ b/src/main/java/com/lf/server/interceptor/AuthInterceptor.java @@ -1,8 +1,99 @@ package com.lf.server.interceptor; +import com.alibaba.fastjson.JSON; +import com.lf.server.entity.all.HttpStatus; +import com.lf.server.entity.all.ResponseMsg; +import com.lf.server.entity.all.StaticData; +import com.lf.server.entity.sys.UsersEntity; +import com.lf.server.helper.StringHelper; +import com.lf.server.helper.WebHelper; +import com.lf.server.service.sys.TokenService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + /** * 韬唤璁よ瘉鎷︽埅鍣� * @author WWW */ -public class AuthInterceptor { +@Configuration +public class AuthInterceptor implements HandlerInterceptor { + private TokenService tokenService; + + private static final Log log = LogFactory.getLog(AuthInterceptor.class); + + private static final String NO_TOKEN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.TOKEN_ERROR, "鎵句笉鍒颁护鐗�")); + + private static final String NO_LOGIN = JSON.toJSONString(new ResponseMsg<String>(HttpStatus.NO_LOGIN_ERROR, "鐢ㄦ埛鏈櫥褰�")); + + + public AuthInterceptor(TokenService tokenService) { + this.tokenService = tokenService; + } + + /** + * Controller鎵ц涔嬪墠鎵ц锛屽鏋滆繑鍥炲�兼槸true鍒欎唬琛ㄦ斁琛岋紝杩斿洖false鍒欐嫤鎴� + * + * @param request + * @param response + * @param handler + * @return + */ + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { + try { + System.out.println(request.getRequestURI().toLowerCase() + "," + (handler instanceof HandlerMethod)); + + // 闈炴柟娉曪紝鏃犻渶鎷︽埅 + if (!(handler instanceof HandlerMethod)) { + return true; + } + + // 鏃犻渶鎺堟潈 + if (noNeedAuth(request)) { + return true; + } + + String token = WebHelper.getToken(request); + if (StringHelper.isNull(token)) { + WebHelper.write2Page(response, NO_TOKEN); + return false; + } + + UsersEntity ue = tokenService.getCurrentUser(request); + if (ue == null) { + WebHelper.write2Page(response, NO_LOGIN); + return false; + } + + // 鏉冮檺鏍¢獙 + + return true; + } catch (Exception ex) { + log.error(ex.getStackTrace()); + return false; + } + } + + /** + * 鏃犻渶鎺堟潈 + * + * @param request + * @return + */ + private static boolean noNeedAuth(HttpServletRequest request) { + String uri = request.getRequestURI().toLowerCase(); + for (String page : StaticData.EXCLUDE_PATH) { + if (uri.contains(page)) { + return true; + } + } + + return false; + } } -- Gitblit v1.9.3