管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-09-29 d1553dc43f9bbdb95db7cbe8760b40e2986d1d4d
1
已修改3个文件
122 ■■■■■ 文件已修改
src/main/java/com/lf/server/controller/sys/SignController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/all/StaticData.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/WebHelper.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/sys/SignController.java
@@ -9,6 +9,7 @@
import com.lf.server.entity.sys.Result;
import com.lf.server.entity.sys.User;
import com.lf.server.helper.StringHelper;
import com.lf.server.helper.WebHelper;
import com.lf.server.service.data.LoginService;
import com.lf.server.service.data.TokenService;
import com.lf.server.service.data.UsersService;
@@ -108,6 +109,8 @@
                return fail("创建令牌信息失败!", null);
            }
            WebHelper.saveToken2Cookie(te.getToken(), req, res);
            return success(te);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
src/main/java/com/lf/server/entity/all/StaticData.java
@@ -11,14 +11,9 @@
    public final static String VERSION = "1.0.0";
    /**
     * Header中令牌键
     * 令牌键
     */
    public final static String TOKEN_HEADER_KEY = "token";
    /**
     * Request中令牌键
     */
    public final static String TOKEN_REQUEST_KEY = "token";
    public final static String TOKEN_KEY = "token";
    /**
     * Cookie中令牌键
src/main/java/com/lf/server/helper/WebHelper.java
@@ -1,11 +1,12 @@
package com.lf.server.helper;
import org.springframework.context.annotation.Configuration;
import com.lf.server.entity.all.StaticData;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;
/**
@@ -17,10 +18,10 @@
    private final static String COMMA = ",";
    /**
     * 获取GUID
     */
    public static String getGuid() {
        /**
         * 获取GUID
         */
        return UUID.randomUUID().toString();
    }
@@ -91,4 +92,103 @@
        return new Timestamp(now.getTimeInMillis());
    }
    /**
     * 从Cookie中获取token
     *
     * @param request
     * @return
     */
    public static String getTokenFromCookie(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        if (cookies == null || cookies.length == 0) {
            return null;
        }
        for (Cookie cookie : cookies) {
            switch (cookie.getName()) {
                case StaticData.TOKEN_COOKIE_KEY:
                    return cookie.getValue();
                default:
                    break;
            }
        }
        return null;
    }
    /**
     * 向Cookie中添加token
     *
     * @param token
     * @param request
     * @param response
     */
    public static void saveToken2Cookie(String token, HttpServletRequest request, HttpServletResponse response) {
        // 先删除
        deleteCookie(StaticData.TOKEN_COOKIE_KEY, request);
        // 再保存
        saveCookie(StaticData.TOKEN_COOKIE_KEY, token, response);
    }
    /**
     * 保存Cookie
     *
     * @param cookieKey
     * @param value
     * @param response
     */
    public static void saveCookie(String cookieKey, String value, HttpServletResponse response) {
        Cookie cookie = new Cookie(cookieKey, value);
        // 设置cookie失效时间,单位为秒
        cookie.setMaxAge(240 * 60);
        cookie.setHttpOnly(false);
        cookie.setPath("/");
        // cookie.setDomain("")
        response.setHeader("P3P", "CP=CAO PSA OUR");
        response.addCookie(cookie);
    }
    /**
     * 删除cookie中的值
     *
     * @param cookieKey
     * @param request
     */
    public static void deleteCookie(String cookieKey, HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        if (cookies != null && cookies.length > 0) {
            for (Cookie c : cookies) {
                if (cookieKey.equalsIgnoreCase(c.getName())) {
                    c.setMaxAge(0);
                    break;
                }
            }
        }
    }
    /**
     * 获取Token
     *
     * @param request
     * @return
     */
    public static String getToken(HttpServletRequest request) {
        // 1.从url参数中,获取token
        String token = request.getParameter(StaticData.TOKEN_KEY);
        // 2.为空,则从header里获取
        if (token == null) {
            token = request.getHeader(StaticData.TOKEN_KEY);
        }
        // 3.还为空,则从cookie里获取
        if (token == null) {
            token = getTokenFromCookie(request);
        }
        return token;
    }
}