KKSU
2024-07-25 0fb3a76c8f7c161daeee597075ef1dfebc67badc
src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
@@ -6,9 +6,11 @@
import cc.mrbird.febs.common.utils.SpringContextUtil;
import cc.mrbird.febs.mall.entity.MallMember;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -31,6 +33,9 @@
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if ("OPTIONS".equals(request.getMethod().toUpperCase())) {
            return true;
        }
        String headerToken = request.getHeader("token");
        if (StringUtils.isBlank(headerToken)) {
            responseUnAuth(response);
@@ -38,7 +43,6 @@
        }
        String token = resolveToken(headerToken);
        if (token == null || AppContants.TIME_OUT.equals(token)) {
            responseUnAuth(response);
            return false;
@@ -68,7 +72,11 @@
    private void responseUnAuth(HttpServletResponse response) throws IOException {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/json; charset=utf-8");
        response.getWriter().write(new ObjectMapper().writeValueAsString(new FebsResponse().code(HttpStatus.UNAUTHORIZED)));
        FebsResponse code = new FebsResponse().code(HttpStatus.UNAUTHORIZED);
        String encryptBase64 = SecureUtil.rsa(AppContants.RESP_PRIVATE_KEY, AppContants.RESP_PUBLIC_KEY).encryptBase64(JSONObject.toJSONString(code).getBytes(), KeyType.PublicKey);
        response.getWriter().write(new ObjectMapper().writeValueAsString(encryptBase64));
//        response.getWriter().write(new ObjectMapper().writeValueAsString(new FebsResponse().code(HttpStatus.UNAUTHORIZED)));
    }
    private String resolveToken(String token) {
@@ -87,10 +95,10 @@
    }
    private Boolean verifyTokenExpired(Long time) {
        boolean isDebug = false;
        boolean isDebug = true;
        if (!isDebug) {
            long currentTime = System.currentTimeMillis();
            return currentTime - time <= 30000;
            return currentTime - time <= 3600000;
        }
        return true;
    }