diff --git a/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/RequestUtil.java b/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/RequestUtil.java new file mode 100644 index 0000000..9200ee9 --- /dev/null +++ b/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/RequestUtil.java @@ -0,0 +1,61 @@ +package com.njcn.web.utils; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import com.njcn.common.bean.CustomCacheUtil; +import com.njcn.common.pojo.constant.SecurityConstants; +import com.njcn.common.utils.JwtUtil; +import org.apache.logging.log4j.util.Strings; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +/** + * @author caozehui + * @data 2025-02-24 + */ +public class RequestUtil { + /** + * 获取当前请求的AccessToken + * + * @return 若成功,返回当前请求的AccessToken;若失败,返回null + */ + public static String getAccessToken() { + HttpServletRequest request = HttpServletUtil.getRequest(); + String accessTokenStr = request.getHeader(SecurityConstants.AUTHORIZATION_KEY); + String accessToken = null; + if (StrUtil.isNotBlank(accessTokenStr)) { + accessToken = accessTokenStr.replace(SecurityConstants.AUTHORIZATION_PREFIX, Strings.EMPTY); + } + return accessToken; + } + + /** + * 获取当前登录用户的ID + * + * @return 若成功,返回当前登录用户的ID;若失败,返回null + */ + public static String getUserId() { + String accessToken = getAccessToken(); + String userId = null; + if (StrUtil.isNotBlank(accessToken)) { + Map map = JwtUtil.parseToken(accessToken); + userId = (String) map.get(SecurityConstants.USER_ID); + } + return userId; + } + + /** + * 从缓冲中获取当前登录用户的JSON格式的用户信息 + * @return 若成功,返回当前登录用户的JSON格式的用户信息;若失败,返回null + */ + public static String getUserJson(){ + String accessToken = getAccessToken(); + String userJson = null; + if (StrUtil.isNotBlank(accessToken)) { + CustomCacheUtil customCacheUtil = SpringUtil.getBean(CustomCacheUtil.CACHE_NAME); + userJson = customCacheUtil.get(accessToken,false); + } + return userJson; + } +}