| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -5,8 +5,6 @@ import com.epmet.commons.tools.constant.Constant; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.exception.EpmetErrorCode; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.exception.RenException; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.security.dto.BaseTokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.security.dto.GovTokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.security.dto.TokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.utils.CpUserDetailRedis; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.filter.CpProperty; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.jwt.JwtTokenUtils; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -22,6 +20,8 @@ import org.springframework.stereotype.Component; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.util.AntPathMatcher; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import org.springframework.web.server.ServerWebExchange; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.Date; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * 内部认证处理器 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -47,93 +47,65 @@ public class InternalAuthProcessor extends AuthProcessor { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String requestUri = request.getPath().pathWithinApplication().value(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String token = getTokenFromRequest(request); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //BaseTokenDto baseTokenDto = StringUtils.isNotBlank(token) ? getBaseTokenDto(token, jwtTokenUtils) : null;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        BaseTokenDto baseTokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(StringUtils.isNotBlank(token)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            try{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                baseTokenDto = getBaseTokenDto(token, jwtTokenUtils); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }catch(RenException e){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //return response(exchange,new Result<>().error(e.getCode(),e.getMsg()));
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                throw new RenException(e.getCode(), e.getInternalMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }else{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            baseTokenDto = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        boolean needAuth = needAuth(requestUri); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (needAuth && StringUtils.isBlank(token)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // token不能为空
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException(EpmetErrorCode.ERR10005.getCode(), EpmetErrorCode.ERR10005.getMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        BaseTokenDto baseTokenDto = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String app = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String client = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String userId = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String customerId = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Date expiration = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (baseTokenDto != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (AppClientConstant.APP_RESI.equals(baseTokenDto.getApp())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                // 居民端
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                TokenDto resiTokenDto = getLoginUserInfoByToken(token, jwtTokenUtils, TokenDto.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (resiTokenDto != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    customerId = resiTokenDto.getCustomerId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    baseTokenDto = resiTokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } else if (AppClientConstant.APP_GOV.equals(baseTokenDto.getApp())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                // 政府端
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                GovTokenDto govTokenDto = getLoginUserInfoByToken(token, jwtTokenUtils, GovTokenDto.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (govTokenDto != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    customerId = govTokenDto.getCustomerId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    baseTokenDto = govTokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } else if(AppClientConstant.APP_OPER.equals(baseTokenDto.getApp())){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //运营端
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                TokenDto resiTokenDto = getLoginUserInfoByToken(token, jwtTokenUtils, TokenDto.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (resiTokenDto != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    customerId = resiTokenDto.getCustomerId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    baseTokenDto = resiTokenDto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(StringUtils.isNotBlank(token)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //是否过期
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            Claims claims = jwtTokenUtils.getClaimByToken(token); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (claims != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                app = (String) claims.get(AppClientConstant.APP); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                client = (String) claims.get(AppClientConstant.CLIENT); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                userId = (String) claims.get(AppClientConstant.USER_ID); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                expiration = claims.getExpiration(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                baseTokenDto = cpUserDetailRedis.get(app, client, userId, BaseTokenDto.class); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (needAuth(requestUri)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 校验token
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (StringUtils.isBlank(token)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //return response(exchange, new Result<>().error(EpmetErrorCode.ERR10005.getCode(), EpmetErrorCode.ERR10005.getMsg()));
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                throw new RenException(EpmetErrorCode.ERR10005.getCode(), EpmetErrorCode.ERR10005.getMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                validateTokenDto(baseTokenDto, token); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } catch (RenException e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //return response(exchange, new Result<>().error(e.getCode(), e.getMsg()));
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                throw new RenException(e.getCode(), e.getInternalMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (baseTokenDto != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            customerId = baseTokenDto.getCustomerId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (needAuth) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            validateToken(baseTokenDto, token, expiration); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // 添加header
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ServerHttpRequest.Builder builder = exchange.getRequest().mutate(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isNotBlank(app)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.APP, app); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isNotBlank(client)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.CLIENT, client); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (StringUtils.isNotBlank(userId)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.USER_ID, userId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (baseTokenDto != null) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            String redisKey = baseTokenDto.getApp() + "-" + baseTokenDto.getClient() + "-" + baseTokenDto.getUserId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            logger.info("redisKey=" + redisKey); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ServerHttpRequest.Builder builder = exchange.getRequest().mutate(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(Constant.APP_USER_KEY, redisKey); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.APP,baseTokenDto.getApp()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.CLIENT,baseTokenDto.getClient()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.USER_ID,baseTokenDto.getUserId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(StringUtils.isNotBlank(customerId)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (StringUtils.equalsAny(baseTokenDto.getApp(), AppClientConstant.APP_GOV, AppClientConstant.APP_RESI, "public")) {//工作端/居民端
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    builder.header(AppClientConstant.CUSTOMER_ID, customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //if (StringUtils.isNotBlank(baseTokenDto.getCustomerId())) {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //    builder.header(AppClientConstant.CUSTOMER_ID,baseTokenDto.getCustomerId());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //}
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //if (StringUtils.equalsAny(baseTokenDto.getApp(), AppClientConstant.APP_GOV, AppClientConstant.APP_RESI)) {//工作端/居民端
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //    if(StringUtils.isNotBlank(customerId)){
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //        exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //    }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //} else if (StringUtils.equals(baseTokenDto.getApp(), "public")) {//公众号端
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //    exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //}
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            ServerHttpRequest build = exchange.getRequest().mutate().build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return exchange.mutate().request(build).build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if(StringUtils.isNotBlank(customerId)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            builder.header(AppClientConstant.CUSTOMER_ID, customerId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return exchange; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ServerHttpRequest shr = builder.build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return exchange.mutate().request(shr).build(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -173,6 +145,12 @@ public class InternalAuthProcessor extends AuthProcessor { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return token; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 从用户token中取app,client,userId三项数据 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @author wxz | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @date 2021.06.11 15:04 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private BaseTokenDto getBaseTokenDto(String token, JwtTokenUtils jwtTokenUtils) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //是否过期
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Claims claims = jwtTokenUtils.getClaimByToken(token); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -186,29 +164,20 @@ public class InternalAuthProcessor extends AuthProcessor { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return new BaseTokenDto(app, client, userId, token); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private <T> T getLoginUserInfoByToken(String token, JwtTokenUtils jwtTokenUtils, Class<T> clz) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        BaseTokenDto baseTokenDto = getBaseTokenDto(token, jwtTokenUtils); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //查询Redis
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return cpUserDetailRedis.get(baseTokenDto.getApp(), baseTokenDto.getClient(), baseTokenDto.getUserId(), clz); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * 校验Token是否异常 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param tokenDto | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @param tokenStr | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void validateTokenDto(BaseTokenDto tokenDto, String tokenStr) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null == tokenDto) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private void validateToken(BaseTokenDto tokenDto, String tokenStr, Date expiration) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null == tokenDto || jwtTokenUtils.isTokenExpired(expiration)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //说明登录状态时效(超时)
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException(EpmetErrorCode.ERR10006.getCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            throw new RenException(EpmetErrorCode.ERR10006.getCode(), EpmetErrorCode.ERR10006.getMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }else{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //Redis中存在数据,取出token,进行比对
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(StringUtils.equals(tokenDto.getToken(),tokenStr)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //用户携带token与Redis中一致
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }else{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if(!StringUtils.equals(tokenDto.getToken(),tokenStr)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //用户携带token与Redis中不一致,说明当前用户此次会话失效,提示重新登陆
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                throw new RenException(EpmetErrorCode.ERR10007.getCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                throw new RenException(EpmetErrorCode.ERR10007.getCode(), EpmetErrorCode.ERR10007.getMsg()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |