我用来做获取管理员id的操作
package org.greencode.common.utils; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; public class CookieUtil { /** * 功能描述: <br> * @Param: [response, token] * @Return: void * @Author: mango * @methodName: addCookie * @Date: 2020/3/22 16:39 */ public static void addCookie(HttpServletResponse response, String token) { //将token存入到redis //将token写入cookie Cookie cookie = new Cookie("token", token); cookie.setMaxAge(3600 * 24 * 2); cookie.setPath("/"); response.addCookie(cookie); } /** * 获取cookie * @param request * @param cookiName * @return */ public static String get(HttpServletRequest request, String cookiName) { Cookie[] cookies = request.getCookies(); if (cookies == null || cookies.length <= 0) { // return null; return null; } for (Cookie cookie : cookies) { if (cookie.getName().equals(cookiName)) { return cookie.getValue(); } } return null; } /** * 将cookie封装成Map * @param request * @return */ private static Map<String, Cookie> readCookieMap(HttpServletRequest request) { Map<String, Cookie> cookieMap = new HashMap<>(); Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie: cookies) { cookieMap.put(cookie.getName(), cookie); } } return cookieMap; } } 登陆成功后设置
String token = jwtUtils.generateToken(“user.getUserId()”); CookieUtil.addCookie(response,token);
拿到token,并解密,由于我是把id存入subject里面
String oldToken = CookieUtil.get(request, "token");
claims = jwtUtils.getClaimByToken(oldToken);
String accountName = claims.getSubject();