完善登录、请求鉴权

This commit is contained in:
启航 2024-01-22 18:37:32 +08:00
parent c4404bd46a
commit fa704f6171
7 changed files with 58 additions and 13 deletions

View File

@ -0,0 +1,44 @@
package com.qihang.oms.api.constant;
/**
* 缓存的key 常量
*
* @author qihang
*/
public class CacheConstants
{
/**
* 登录用户 redis key
*/
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
/**
* 验证码 redis key
*/
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
/**
* 参数管理 cache key
*/
public static final String SYS_CONFIG_KEY = "sys_config:";
/**
* 字典管理 cache key
*/
public static final String SYS_DICT_KEY = "sys_dict:";
/**
* 防重提交 redis key
*/
public static final String REPEAT_SUBMIT_KEY = "repeat_submit:";
/**
* 限流 redis key
*/
public static final String RATE_LIMIT_KEY = "rate_limit:";
/**
* 登录账户密码错误次数 redis key
*/
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
}

View File

@ -1,4 +1,4 @@
package com.qihang.oms.api.common; package com.qihang.oms.api.constant;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;

View File

@ -2,6 +2,8 @@ package com.qihang.oms.api.service;
import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.cloud.commons.lang.StringUtils;
import com.qihang.oms.api.config.RedisCache; import com.qihang.oms.api.config.RedisCache;
import com.qihang.oms.api.constant.CacheConstants;
import com.qihang.oms.api.constant.Constants;
import com.qihang.oms.api.domain.LoginUser; import com.qihang.oms.api.domain.LoginUser;
import com.qihang.oms.api.utils.IdUtils; import com.qihang.oms.api.utils.IdUtils;
import com.qihang.oms.api.utils.ServletUtils; import com.qihang.oms.api.utils.ServletUtils;
@ -64,7 +66,7 @@ public class TokenService
{ {
Claims claims = parseToken(token); Claims claims = parseToken(token);
// 解析对应的权限以及用户信息 // 解析对应的权限以及用户信息
String uuid = (String) claims.get("login_user_key"); String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
String userKey = getTokenKey(uuid); String userKey = getTokenKey(uuid);
LoginUser user = redisCache.getCacheObject(userKey); LoginUser user = redisCache.getCacheObject(userKey);
return user; return user;
@ -113,7 +115,7 @@ public class TokenService
refreshToken(loginUser); refreshToken(loginUser);
Map<String, Object> claims = new HashMap<>(); Map<String, Object> claims = new HashMap<>();
claims.put("login_user_key", token); claims.put(Constants.LOGIN_USER_KEY, token);
return createToken(claims); return createToken(claims);
} }
@ -211,16 +213,15 @@ public class TokenService
private String getToken(HttpServletRequest request) private String getToken(HttpServletRequest request)
{ {
String token = request.getHeader("Authorization"); String token = request.getHeader("Authorization");
// if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX)) if (StringUtils.isNotEmpty(token) && token.startsWith(Constants.TOKEN_PREFIX))
// { {
// token = token.replace(Constants.TOKEN_PREFIX, ""); token = token.replace(Constants.TOKEN_PREFIX, "");
// } }
return token; return token;
} }
private String getTokenKey(String uuid) private String getTokenKey(String uuid)
{ {
// return CacheConstants.LOGIN_TOKEN_KEY + uuid; return CacheConstants.LOGIN_TOKEN_KEY + uuid;
return uuid;
} }
} }

View File

@ -1,7 +1,7 @@
package com.qihang.oms.api.utils; package com.qihang.oms.api.utils;
import com.qihang.oms.api.common.Constants; import com.qihang.oms.api.constant.Constants;
import com.qihang.oms.api.common.Convert; import com.qihang.oms.api.common.Convert;
import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletRequest;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;

View File

@ -1,7 +1,7 @@
package com.qihang.oms.api.utils; package com.qihang.oms.api.utils;
import com.qihang.oms.api.common.Constants; import com.qihang.oms.api.constant.Constants;
import com.qihang.oms.api.common.StrFormatter; import com.qihang.oms.api.common.StrFormatter;
import org.springframework.util.AntPathMatcher; import org.springframework.util.AntPathMatcher;

View File

@ -1,6 +1,6 @@
package com.qihang.oms.api.utils.http; package com.qihang.oms.api.utils.http;
import com.qihang.oms.api.common.Constants; import com.qihang.oms.api.constant.Constants;
import com.qihang.oms.api.utils.StringUtils; import com.qihang.oms.api.utils.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

View File

@ -2,7 +2,7 @@ package com.qihang.oms.api.utils.ip;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.qihang.oms.api.common.Constants; import com.qihang.oms.api.constant.Constants;
import com.qihang.oms.api.utils.http.HttpUtils; import com.qihang.oms.api.utils.http.HttpUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;