|
|
@@ -1,4 +1,4 @@
|
|
|
-package com.sckw.core.filter;
|
|
|
+package com.sckw.core.interceptor;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
|
@@ -7,28 +7,21 @@ import com.sckw.core.web.context.LoginEntHolder;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.core.web.model.LoginEntInfo;
|
|
|
import com.sckw.core.web.model.LoginUserInfo;
|
|
|
-import jakarta.servlet.*;
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
+import jakarta.servlet.http.HttpServletResponse;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.core.Ordered;
|
|
|
+import org.springframework.web.servlet.HandlerInterceptor;
|
|
|
|
|
|
-import java.io.IOException;
|
|
|
import java.net.URLDecoder;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
|
/**
|
|
|
- * @desc: 登录过滤
|
|
|
- * @author: czh
|
|
|
- * @date: 2023/6/14
|
|
|
+ * 登录认证拦截器,用于从请求头中获取登录用户信息并设置到上下文中
|
|
|
*/
|
|
|
@Slf4j
|
|
|
-public class RequestCheckFilter implements Filter, Ordered {
|
|
|
-
|
|
|
-
|
|
|
+public class AuthenticationInterceptor implements HandlerInterceptor {
|
|
|
@Override
|
|
|
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
|
|
|
- FilterChain filterChain) throws IOException, ServletException {
|
|
|
- HttpServletRequest request = (HttpServletRequest) servletRequest;
|
|
|
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
|
String userInfoStrEncode = request.getHeader(Global.USER_INFO_STR_ENCODE);
|
|
|
String entInfoStrEncode = request.getHeader(Global.ENT_INFO_STR_ENCODE);
|
|
|
LoginUserInfo loginUserInfo = null;
|
|
|
@@ -43,13 +36,13 @@ public class RequestCheckFilter implements Filter, Ordered {
|
|
|
}
|
|
|
LoginUserHolder.set(loginUserInfo);
|
|
|
LoginEntHolder.set(loginEntInfo);
|
|
|
- filterChain.doFilter(servletRequest, servletResponse);
|
|
|
- LoginUserHolder.remove();
|
|
|
- LoginEntHolder.remove();
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public int getOrder() {
|
|
|
- return -1;
|
|
|
+ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
|
|
+ //清理用户和企业上下文线程变量
|
|
|
+ LoginUserHolder.remove();
|
|
|
+ LoginEntHolder.remove();
|
|
|
}
|
|
|
}
|