JAVA总结工具类(一)

    /**
     * 使用JwtToken
     * 从cookie中获取用户ID方法
     * @param request
     * @param tenantId
     * @return 
     */
    private String getUserIdFromCookie(HttpServletRequest request, String tenantId) {
        String token = CookieUtils.getCookie(request, "v_authorization");
        if (token == null) {
            return null;
        }
        JwtToken jwtToken = null;
        try {
            jwtToken = Utils.decodeSignatureToken(token, this.cookieEncryptKey);
        } catch (Exception e) {
            return null;
        }
        long expire = jwtToken.getExpire().getTime();
        long now = DateUtils.getGMTTimeInMillis().longValue();
        if (now > expire) {
            return null;
        }
        Map<String, String> payload = jwtToken.getPayload();
        String uid = (String) payload.get("uid");
        if (!tenantId.equals(payload.get("tenantId"))) {
            return null;
        }
        if (!Utils.isAnonymityUser(uid)) {
            return null;
        }
        return uid;
    }

    /**
     * 获取用户真实IP方法
     * @param request
     * @return
     */
    public String getIpAddress(HttpServletRequest request) {
        String ip = request.getHeader("x-forwarded-for");
        if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
            ip = request.getHeader("HTTP_CLIENT_IP");
        }
        if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if ((ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip))) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }

猜你喜欢

转载自blog.csdn.net/qq_32447301/article/details/81221750