From 177249c76aeea0b4bf8d8816d4994e3b445b45ce Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 02 九月 2021 10:39:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/zzj' into zzj --- springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java | 74 +++++++++++++++++++++--------------- 1 files changed, 43 insertions(+), 31 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java index d0f73c5..eb4b1be 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java +++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java @@ -1,12 +1,14 @@ package com.panzhihua.zuul.filters; -import com.alibaba.fastjson.JSONArray; -import com.panzhihua.common.constants.*; -import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.utlis.JWTTokenUtil; -import com.panzhihua.common.utlis.ResultUtil; -import com.panzhihua.zuul.config.RealNamedConfig; -import io.jsonwebtoken.Claims; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.data.redis.core.StringRedisTemplate; @@ -15,13 +17,16 @@ import org.springframework.stereotype.Component; import org.springframework.web.context.support.WebApplicationContextUtils; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; +import com.alibaba.fastjson.JSONArray; +import com.panzhihua.common.constants.HttpStatus; +import com.panzhihua.common.constants.SecurityConstants; +import com.panzhihua.common.constants.TokenConstant; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.utlis.JWTTokenUtil; +import com.panzhihua.common.utlis.ResultUtil; +import com.panzhihua.zuul.config.RealNamedConfig; + +import io.jsonwebtoken.Claims; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -36,7 +41,6 @@ @Autowired private RealNamedConfig realNamedConfig; - @Override public void init(FilterConfig filterConfig) throws ServletException { @@ -45,30 +49,36 @@ /** * 用户是否登录校验 * - * @param servletRequest 请求 - * @param servletResponse 返回 - * @param filterChain 过滤器链条 - * @throws IOException io - * @throws ServletException servlet + * @param servletRequest + * 请求 + * @param servletResponse + * 返回 + * @param filterChain + * 过滤器链条 + * @throws IOException + * io + * @throws ServletException + * servlet */ @Override - public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - HttpServletRequest request = (HttpServletRequest) servletRequest; + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) + throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest)servletRequest; SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request); - HttpServletResponse response = (HttpServletResponse) servletResponse; + HttpServletResponse response = (HttpServletResponse)servletResponse; // 获取请求头中JWT的Token String tokenHeader = request.getHeader(TokenConstant.TOKEN_HEADER); - if (null != tokenHeader && tokenHeader.startsWith(TokenConstant.TOKEN_PRE) - &&realNamedConfig!=null && realNamedConfig.getVerify()!=null &&realNamedConfig.getVerify().size()>0) { + if (null != tokenHeader && tokenHeader.startsWith(TokenConstant.TOKEN_PRE) && realNamedConfig != null + && realNamedConfig.getVerify() != null && realNamedConfig.getVerify().size() > 0) { String token = tokenHeader.replace(TokenConstant.TOKEN_PRE, ""); // token解析 Claims claims = JWTTokenUtil.getClaimsFromToken(token); - if(claims!=null) {//检查token有效 + if (claims != null) {// 检查token有效 String username = claims.getSubject(); - int type = (Integer) claims.get("type"); - if (1 == type) {//小程序用户统一角色 + int type = (Integer)claims.get("type"); + if (1 == type) {// 小程序用户统一角色 String requestURI = request.getRequestURI(); String requestMethod = request.getMethod().toLowerCase(); @@ -95,16 +105,18 @@ boolean userHashRight = false; try { String roles = valueOperations.get(appletUserRoleKey); - List<SimpleGrantedAuthority> authorities = JSONArray.parseArray(roles, SimpleGrantedAuthority.class); + List<SimpleGrantedAuthority> authorities = + JSONArray.parseArray(roles, SimpleGrantedAuthority.class); if (authorities != null && authorities.size() > 0) { AtomicBoolean userHasRightRole = new AtomicBoolean(false); authorities.forEach(authority -> { - if (authority.getAuthority().equals(SecurityConstants.ROLE_APPLETS_REAL_NAMED)) { + if (authority.getAuthority() + .equals(SecurityConstants.ROLE_APPLETS_REAL_NAMED)) { userHasRightRole.set(true); } }); if (userHasRightRole.get()) { - //用户包含“已实名”角色,则放行 什么也不做 + // 用户包含“已实名”角色,则放行 什么也不做 userHashRight = true; } } -- Gitblit v1.7.1