Pu Zhibing
7 天以前 7a4f9541331bef779a506b38a27ed5c3373c0bec
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -87,11 +87,6 @@
      addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
      addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
      addHeader(mutate, SecurityConstants.USER_TYPE, userType);
      //管理后台记录用户最后一次的操作时间,用于判定30分钟无操作后删除token,退出登录
      if("system".equals(userType)){
         addLastTime(userid, url);
      }
      // 内部请求来源参数清除
      removeHeader(mutate, SecurityConstants.FROM_SOURCE);
      return chain.filter(exchange.mutate().request(mutate.build()).build());
@@ -113,25 +108,6 @@
   private Mono<Void> unauthorizedResponse(ServerWebExchange exchange, String msg) {
      log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath() + "\n" + msg);
      return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED);
   }
   /**
    * 记录用户最后一次操作的时间
    * @param userid
    * @param url
    */
   private void addLastTime(String userid, String url){
      Object lastTime = redisService.getCacheObject("lastTime:" + userid);
      if(null == lastTime){
         redisService.setCacheObject("lastTime:" + userid, System.currentTimeMillis());
      }else{
         Long last = Long.valueOf(lastTime.toString());
         //操作登录或者时间差值小于30分钟,写入新的数据到缓存中
         if("/auth/login".equals(url) || System.currentTimeMillis() - last < 1800000L){
            redisService.setCacheObject("lastTime:" + userid, System.currentTimeMillis());
         }
      }
   }