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