From 6299655bb00ac5ce9bb2d3305d9f43c238c69a9f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 23 八月 2024 12:03:07 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java |   48 ++++++++++++++++++++++++++++++------------------
 1 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java
index e45e977..005085e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java
@@ -5,7 +5,6 @@
 import com.ruoyi.common.core.constant.HttpStatus;
 import com.ruoyi.common.core.constant.TokenConstants;
 import com.ruoyi.common.core.utils.JwtUtils;
-import com.ruoyi.common.core.utils.ServletUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
@@ -14,14 +13,14 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Component;
-import org.springframework.web.server.ServerWebExchange;
-import org.springframework.web.server.WebFilter;
-import org.springframework.web.server.WebFilterChain;
-import reactor.core.publisher.Mono;
 
 import javax.annotation.Resource;
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
 
 /**
  * @author zhibing.pu
@@ -29,7 +28,7 @@
  */
 @Order(-200)
 @Component
-public class AuthFilter implements WebFilter {
+public class AuthFilter implements Filter {
 	private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
 	
 	@Lazy
@@ -42,8 +41,9 @@
 	
 	
 	@Override
-	public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
-		ServerHttpRequest request = exchange.getRequest();
+	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+		HttpServletRequest request = (HttpServletRequest) servletRequest;
+		HttpServletResponse response = (HttpServletResponse) servletResponse;
 		String token = getToken(request);
 		Claims claims = JwtUtils.parseToken(token);
 		String userid = JwtUtils.getUserId(claims);
@@ -53,11 +53,11 @@
 			SysUser sysUser = sysUserClient.getSysUser(Long.valueOf(userid)).getData();
 			if(null == sysUser || "2".equals(sysUser.getDelFlag())){
 				log.error("[账户异常处理]请求账户id:{}", userid);
-				return unauthorizedResponse(exchange,"无效的账户");
+				unauthorizedResponse(response,"无效的账户");
 			}
 			if("1".equals(sysUser.getStatus())){
 				log.error("[账户异常处理]请求账户id:{}", userid);
-				return unauthorizedResponse(exchange,"账户已被停用,请联系系统管理员!");
+				unauthorizedResponse(response,"账户已被停用,请联系系统管理员!");
 			}
 		}
 		//小程序用户
@@ -65,19 +65,29 @@
 			TAppUser appUser = appUserClient.getUserById(Long.valueOf(userid)).getData();
 			if(null == appUser || appUser.getDelFlag() || 3 == appUser.getStatus()){
 				log.error("[账户异常处理]请求账户id:{}", userid);
-				return unauthorizedResponse(exchange,"无效的账户");
+				unauthorizedResponse(response,"无效的账户");
 			}
 			if(2 == appUser.getStatus()){
 				log.error("[账户异常处理]请求账户id:{}", userid);
-				return unauthorizedResponse(exchange,"账户已被冻结,请联系系统管理员!");
+				unauthorizedResponse(response,"账户已被冻结,请联系系统管理员!");
 			}
 		}
-		return chain.filter(exchange);
+		filterChain.doFilter(request, response);
 	}
 	
 	
-	private Mono<Void> unauthorizedResponse(ServerWebExchange exchange, String msg) {
-		return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED);
+	
+	private void unauthorizedResponse(HttpServletResponse response, String msg) {
+		response.setStatus(HttpStatus.UNAUTHORIZED);
+		PrintWriter writer = null;
+		try {
+			writer = response.getWriter();
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
+		writer.println(msg);
+		writer.flush();
+		writer.close();
 	}
 	
 	
@@ -85,12 +95,14 @@
 	/**
 	 * 获取请求token
 	 */
-	private String getToken(ServerHttpRequest request) {
-		String token = request.getHeaders().getFirst(TokenConstants.AUTHENTICATION);
+	private String getToken(HttpServletRequest request) {
+		String token = request.getHeader(TokenConstants.AUTHENTICATION);
 		// 如果前端设置了令牌前缀,则裁剪掉前缀
 		if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
 			token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
 		}
 		return token;
 	}
+	
+	
 }

--
Gitblit v1.7.1