beetlsql3-dev
Mlxa0324 2 years ago
parent 4e2b7da6ea
commit e80ea66dc1

@ -2,12 +2,21 @@ package cn.jlw.Interceptor;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSONArray;
import com.auth0.jwt.JWT; import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTDecodeException;
import com.auth0.jwt.exceptions.JWTVerificationException;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import com.ibeetl.admin.core.rbac.UserLoginInfo; import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.jlw.entity.AbstractToken;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.service.WebPlatformService; import com.ibeetl.jlw.service.WebPlatformService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -21,11 +30,13 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static cn.jlw.token.TokenService.tokenMap;
import static com.ibeetl.admin.core.util.HttpRequestLocal.getOriginRequestToken; import static com.ibeetl.admin.core.util.HttpRequestLocal.getOriginRequestToken;
import static com.ibeetl.admin.core.util.HttpRequestLocal.jwtTokenSplitTimestamp; import static com.ibeetl.admin.core.util.HttpRequestLocal.jwtTokenSplitTimestamp;
import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest; import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest;
@ -103,78 +114,78 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
actionLog.init(httpServletRequest,object); actionLog.init(httpServletRequest,object);
//检查有没有需要用户权限的注解 //检查有没有需要用户权限的注解
// if (StringUtils.isNotBlank(token) && token.split("\\.").length >= 3) { if (StringUtils.isNotBlank(token) && token.split("\\.").length >= 3) {
// // 获取 token 中的 memberId或openId // 获取 token 中的 memberId或openId
// String id; String id;
// String attributeName; String attributeName;
// try { try {
// DecodedJWT decode = JWT.decode(token); DecodedJWT decode = JWT.decode(token);
// id = decode.getAudience().get(0); id = decode.getAudience().get(0);
// attributeName = decode.getClaim(id).as(String.class); attributeName = decode.getClaim(id).as(String.class);
// } catch (JWTDecodeException j) { } catch (JWTDecodeException j) {
// System.out.println("有误的token"+token); System.out.println("有误的token"+token);
// actionLog.delByUUId(httpServletRequest); actionLog.delByUUId(httpServletRequest);
//
// j.printStackTrace(); j.printStackTrace();
// Map<String,Object>map = new HashMap<>(); Map<String,Object>map = new HashMap<>();
// map.put("code",401); map.put("code",401);
// map.put("msg","登陆超时,请重新登陆"); map.put("msg","登陆超时,请重新登陆");
// httpServletResponse.reset(); httpServletResponse.reset();
// httpServletResponse.setContentType("text/html;charset=utf-8"); httpServletResponse.setContentType("text/html;charset=utf-8");
// httpServletResponse.getWriter().write(JSONArray.toJSONString(map)); httpServletResponse.getWriter().write(JSONArray.toJSONString(map));
// return false; return false;
// } }
// AbstractToken abstractToken = null; AbstractToken abstractToken = null;
// try{ try{
// abstractToken = ToolUtils.deepCopy(tokenMap.get(attributeName + "_" + id)); abstractToken = ToolUtils.deepCopy(tokenMap.get(attributeName + "_" + id));
// }catch (Exception e){} }catch (Exception e){}
// if (abstractToken == null) { if (abstractToken == null) {
// actionLog.delByUUId(httpServletRequest); actionLog.delByUUId(httpServletRequest);
//
// Map<String,Object>map = new HashMap<>(); Map<String,Object>map = new HashMap<>();
// map.put("code",401); map.put("code",401);
// map.put("msg","信息丢失,请重新登陆"); map.put("msg","信息丢失,请重新登陆");
// httpServletResponse.reset(); httpServletResponse.reset();
// httpServletResponse.setContentType("text/html;charset=utf-8"); httpServletResponse.setContentType("text/html;charset=utf-8");
// httpServletResponse.getWriter().write(JSONArray.toJSONString(map)); httpServletResponse.getWriter().write(JSONArray.toJSONString(map));
// return false; return false;
// } }
//
// // 验证 token // 验证 token
// JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256((abstractToken.getAddTime().getTime())+"")).build(); JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256((abstractToken.getAddTime().getTime())+"")).build();
// try { try {
// jwtVerifier.verify(token); jwtVerifier.verify(token);
// } catch (JWTVerificationException e) { } catch (JWTVerificationException e) {
// actionLog.delByUUId(httpServletRequest); actionLog.delByUUId(httpServletRequest);
//
// e.printStackTrace(); e.printStackTrace();
// Map<String,Object>map = new HashMap<>(); Map<String,Object>map = new HashMap<>();
// map.put("code",401); map.put("code",401);
// map.put("msg","登陆超时,请重新登陆"); map.put("msg","登陆超时,请重新登陆");
// httpServletResponse.reset(); httpServletResponse.reset();
// httpServletResponse.setContentType("text/html;charset=utf-8"); httpServletResponse.setContentType("text/html;charset=utf-8");
// httpServletResponse.getWriter().write(JSONArray.toJSONString(map)); httpServletResponse.getWriter().write(JSONArray.toJSONString(map));
// return false; return false;
// } }
//
// if (abstractToken instanceof Student) { if (abstractToken instanceof Student) {
// Student student = (Student) abstractToken; Student student = (Student) abstractToken;
// actionLog.appendStudentInfo(httpServletRequest, token, student.getStudentId(),null); actionLog.appendStudentInfo(httpServletRequest, token, student.getStudentId(),null);
// } }
// else { else {
// actionLog.appendStudentInfo(httpServletRequest,token, null,null); actionLog.appendStudentInfo(httpServletRequest,token, null,null);
// } }
//
//
// /** 根据身份插入到Session。Key是不用的。 /** SessionKey
// * 供这里使用 {@link WebPlatformService#getUserInfoFromSessionByIdentity} * 使 {@link WebPlatformService#getUserInfoFromSessionByIdentity}
// */ */
//// attributeName = tokenInterface.getIdentity().getAttributeName(); // attributeName = tokenInterface.getIdentity().getAttributeName();
// if (StringUtils.isNotBlank(attributeName)) { if (StringUtils.isNotBlank(attributeName)) {
// httpServletRequest.setAttribute(attributeName, abstractToken); httpServletRequest.setAttribute(attributeName, abstractToken);
// } }
// return true; return true;
// } }
return true; return true;
} }

Loading…
Cancel
Save