Browse Source

feature-1.0-img:security鉴权方法改写优化

feature-1.1
‘‘ 3 years ago
parent
commit
0d53dc33ce
  1. 17
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java
  2. 165
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/context/SecurityContextHolder.java
  3. 52
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java
  4. 208
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java

17
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java

@ -7,7 +7,7 @@ package com.bnyer.common.core.constant;
*/
public class SecurityConstants
{
//***************************艺术家信息开始************************************
//***************************PC信息开始************************************
/**
* 用户ID字段
*/
@ -87,6 +87,11 @@ public class SecurityConstants
* 抖音用户openId
*/
public static final String DETAILS_TIKTOK_OPENID = "tiktok_user_openid";
/**
* 登录抖音用户
*/
public static final String LOGIN_TIKTOK_USER = "login_tiktok_user";
//***************************抖音用户信息结束************************************
//***************************微信用户信息开始************************************
@ -109,6 +114,11 @@ public class SecurityConstants
* 微信用户openId
*/
public static final String DETAILS_WECHAT_OPENID = "wechat_user_openid";
/**
* 登录微信用户
*/
public static final String LOGIN_WECHAT_USER = "login_wechat_user";
//***************************微信用户信息结束************************************
//***************************快手用户信息开始************************************
@ -132,5 +142,10 @@ public class SecurityConstants
*/
public static final String DETAILS_FH_OPENID = "fh_user_openid";
/**
* 登录快手用户
*/
public static final String LOGIN_FH_USER = "login_fh_user";
//***************************快手用户信息结束************************************
}

165
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/context/SecurityContextHolder.java

@ -51,6 +51,7 @@ public class SecurityContextHolder
THREAD_LOCAL.set(threadLocalMap);
}
//***************************PC信息开始************************************
public static Long getUserId()
{
return Convert.toLong(get(SecurityConstants.DETAILS_USER_ID), 0L);
@ -80,6 +81,170 @@ public class SecurityContextHolder
{
set(SecurityConstants.USER_KEY, userKey);
}
//***************************PC信息结束************************************
//***************************艺术家信息开始************************************
public static Long getCreatorId()
{
return Convert.toLong(get(SecurityConstants.DETAILS_CREATOR_ID), 0L);
}
public static void setCreatorId(String creator)
{
set(SecurityConstants.DETAILS_CREATOR_ID, creator);
}
public static String getCreatorKey()
{
return get(SecurityConstants.CREATOR_KEY);
}
public static void setCreatorKey(String creatorKey)
{
set(SecurityConstants.CREATOR_KEY, creatorKey);
}
public static String getCreatorPhone()
{
return get(SecurityConstants.DETAILS_PHONE);
}
public static void setCreatorPhone(String creatorPhone)
{
set(SecurityConstants.DETAILS_PHONE, creatorPhone);
}
//***************************艺术家信息结束************************************
//***************************抖音用户信息开始************************************
public static String getTikTokOpenId()
{
return get(SecurityConstants.DETAILS_TIKTOK_OPENID);
}
public static void setTikTokOpenId(String tikTokOpenId)
{
set(SecurityConstants.DETAILS_TIKTOK_OPENID, tikTokOpenId);
}
public static String getTikTokUserName()
{
return get(SecurityConstants.DETAILS_TIKTOK_USERNAME);
}
public static void setTikTokUserName(String tikTokUserName)
{
set(SecurityConstants.DETAILS_TIKTOK_USERNAME, tikTokUserName);
}
public static String getTikTokUserKey()
{
return get(SecurityConstants.TIKTOK_USER_KEY);
}
public static void setTikTokUserKey(String tikTokUserKey)
{
set(SecurityConstants.TIKTOK_USER_KEY, tikTokUserKey);
}
public static Long getTikTokUserId()
{
return Convert.toLong(get(SecurityConstants.DETAILS_TIKTOK_USER_ID), 0L);
}
public static void setTikTokUserId(String tiktokUser)
{
set(SecurityConstants.DETAILS_TIKTOK_USER_ID, tiktokUser);
}
//***************************抖音用户信息结束************************************
//***************************微信用户信息开始************************************
public static String getWechatOpenId()
{
return get(SecurityConstants.DETAILS_WECHAT_OPENID);
}
public static void setWechatOpenId(String wechatOpenId)
{
set(SecurityConstants.DETAILS_WECHAT_OPENID, wechatOpenId);
}
public static String getWechatUserName()
{
return get(SecurityConstants.DETAILS_WECHAT_USERNAME);
}
public static void setWechatUserName(String wechatUserName)
{
set(SecurityConstants.DETAILS_WECHAT_USERNAME, wechatUserName);
}
public static String getWechatUserKey()
{
return get(SecurityConstants.WECHAT_USER_KEY);
}
public static void setWechatUserKey(String WechatUserKey)
{
set(SecurityConstants.WECHAT_USER_KEY, WechatUserKey);
}
public static Long getWechatUserId()
{
return Convert.toLong(get(SecurityConstants.DETAILS_WECHAT_USER_ID), 0L);
}
public static void setWechatUserId(String WechatUser)
{
set(SecurityConstants.DETAILS_WECHAT_USER_ID, WechatUser);
}
//***************************微信用户信息结束************************************
//***************************快手用户信息开始************************************
public static String getFhOpenId()
{
return get(SecurityConstants.DETAILS_FH_OPENID);
}
public static void setFhOpenId(String FhOpenId)
{
set(SecurityConstants.DETAILS_FH_OPENID, FhOpenId);
}
public static String getFhUserName()
{
return get(SecurityConstants.DETAILS_FH_USERNAME);
}
public static void setFhUserName(String FhUserName)
{
set(SecurityConstants.DETAILS_FH_USERNAME, FhUserName);
}
public static String getFhUserKey()
{
return get(SecurityConstants.FH_USER_KEY);
}
public static void setFhUserKey(String FhUserKey)
{
set(SecurityConstants.FH_USER_KEY, FhUserKey);
}
public static Long getFhUserId()
{
return Convert.toLong(get(SecurityConstants.DETAILS_FH_USER_ID), 0L);
}
public static void setFhUserId(String FhUser)
{
set(SecurityConstants.DETAILS_FH_USER_ID, FhUser);
}
//***************************快手用户信息结束************************************
public static void remove()
{

52
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java

@ -30,21 +30,57 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
return true;
}
SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));
String pcToken = SecurityUtils.getToken(request);
String creatorToken = SecurityUtils.getCreatorToken(request);
String tiktokToken = SecurityUtils.getTiktokToken(request);
String fhToken = SecurityUtils.getFhToken(request);
String wechatToken = SecurityUtils.getWechatToken(request);
if(StringUtils.isNotEmpty(pcToken)){
SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));
//String token = SecurityUtils.getToken(TokenConstants.AUTHENTICATION);
String token = SecurityUtils.getToken();
if (StringUtils.isNotEmpty(token))
{
LoginUser loginUser = AuthUtil.getLoginUser(token);
LoginUser loginUser = AuthUtil.getLoginUser(pcToken);
if (StringUtils.isNotNull(loginUser))
{
AuthUtil.verifyLoginUserExpire(loginUser);
SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
}
}else if(StringUtils.isNotEmpty(creatorToken)){
SecurityContextHolder.setCreatorId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_CREATOR_ID));
SecurityContextHolder.setCreatorPhone(ServletUtils.getHeader(request, SecurityConstants.DETAILS_PHONE));
SecurityContextHolder.setCreatorKey(ServletUtils.getHeader(request, SecurityConstants.CREATOR_KEY));
}else if(StringUtils.isNotEmpty(tiktokToken)){
SecurityContextHolder.setTikTokUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USER_ID));
SecurityContextHolder.setTikTokUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USERNAME));
SecurityContextHolder.setTikTokUserKey(ServletUtils.getHeader(request, SecurityConstants.TIKTOK_USER_KEY));
SecurityContextHolder.setTikTokOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_OPENID));
}else if(StringUtils.isNotEmpty(fhToken)){
SecurityContextHolder.setFhUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USER_ID));
SecurityContextHolder.setFhUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USERNAME));
SecurityContextHolder.setFhUserKey(ServletUtils.getHeader(request, SecurityConstants.FH_USER_KEY));
SecurityContextHolder.setFhOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_OPENID));
}else if(StringUtils.isNotEmpty(wechatToken)){
SecurityContextHolder.setWechatUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USER_ID));
SecurityContextHolder.setWechatUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USERNAME));
SecurityContextHolder.setWechatUserKey(ServletUtils.getHeader(request, SecurityConstants.WECHAT_USER_KEY));
SecurityContextHolder.setWechatOpenId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_OPENID));
}
// String token = SecurityUtils.getToken();
// if (StringUtils.isNotEmpty(token))
// {
// LoginUser loginUser = AuthUtil.getLoginUser(token);
// if (StringUtils.isNotNull(loginUser))
// {
// AuthUtil.verifyLoginUserExpire(loginUser);
// SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser);
// }
// }
return true;
}

208
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java

@ -2,6 +2,10 @@ package com.bnyer.common.security.utils;
import javax.servlet.http.HttpServletRequest;
import com.bnyer.img.api.model.LoginCreator;
import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.api.model.LoginTiktokUser;
import com.bnyer.img.api.model.LoginWechatUser;
import com.bnyer.system.api.model.LoginUser;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import com.bnyer.common.core.constant.SecurityConstants;
@ -19,6 +23,8 @@ import java.util.Objects;
*/
public class SecurityUtils
{
//***************************PC信息开始*********************************************
/**
* 获取用户ID
*/
@ -51,31 +57,6 @@ public class SecurityUtils
return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class);
}
/**
* 获取请求token
*/
// public static String getToken(String authType)
// {
// //PC
// switch (authType) {
// case TokenConstants.AUTHENTICATION:
// return getToken(Objects.requireNonNull(ServletUtils.getRequest()));
// //抖音
// case TokenConstants.TIKTOK_APP_AUTH:
// return getTiktokToken(Objects.requireNonNull(ServletUtils.getRequest()));
// //快手
// case TokenConstants.FASTHAND_APP_AUTH:
// return getFhToken(Objects.requireNonNull(ServletUtils.getRequest()));
// //微信
// case TokenConstants.WECHAT_APP_AUTH:
// return getWechatToken(Objects.requireNonNull(ServletUtils.getRequest()));
// //艺术家端
// default:
// return getCreatorToken(Objects.requireNonNull(ServletUtils.getRequest()));
// }
//
// }
/**
* 获取请求token
*/
@ -95,6 +76,41 @@ public class SecurityUtils
return replaceTokenPrefix(token);
}
//***************************PC信息结束************************************
//***************************艺术家信息开始************************************
/**
* 获取艺术家ID
*/
public static Long getCreatorId()
{
return SecurityContextHolder.getCreatorId();
}
/**
* 获取艺术家手机号
*/
public static String getCreatorPhone()
{
return SecurityContextHolder.getCreatorPhone();
}
/**
* 获取艺术家key
*/
public static String getCreatorKey()
{
return SecurityContextHolder.getCreatorKey();
}
/**
* 获取登录艺术家信息
*/
public static LoginCreator getLoginCreator()
{
return SecurityContextHolder.get(SecurityConstants.LOGIN_CREATOR, LoginCreator.class);
}
/**
* 根据request获取请求艺术家请求token
*/
@ -105,14 +121,47 @@ public class SecurityUtils
return replaceTokenPrefix(token);
}
//***************************艺术家信息结束************************************
//***************************抖音用户信息开始************************************
/**
* 根据request获取微信小程序用户请求token
* 获取抖音用户ID
*/
public static String getWechatToken(HttpServletRequest request)
public static Long getTikTokUserId()
{
// 从header获取token标识
String token = request.getHeader(TokenConstants.WECHAT_APP_AUTH);
return replaceTokenPrefix(token);
return SecurityContextHolder.getTikTokUserId();
}
/**
* 获取抖音用户名称
*/
public static String getTikTokUserName()
{
return SecurityContextHolder.getTikTokUserName();
}
/**
* 获取抖音用户key
*/
public static String getTikTokUserKey()
{
return SecurityContextHolder.getTikTokUserKey();
}
/**
* 获取抖音用户openId
*/
public static String getTikTokOpenId()
{
return SecurityContextHolder.getTikTokOpenId();
}
/**
* 获取抖音登录用户信息
*/
public static LoginTiktokUser getLoginTikTokUser()
{
return SecurityContextHolder.get(SecurityConstants.LOGIN_TIKTOK_USER, LoginTiktokUser.class);
}
/**
@ -125,6 +174,103 @@ public class SecurityUtils
return replaceTokenPrefix(token);
}
//***************************抖音用户信息结束************************************
//***************************微信用户信息开始************************************
/**
* 获取微信用户ID
*/
public static Long getWechatUserId()
{
return SecurityContextHolder.getWechatUserId();
}
/**
* 获取微信用户名称
*/
public static String getWechatUserName()
{
return SecurityContextHolder.getWechatUserName();
}
/**
* 获取微信用户key
*/
public static String getWechatUserKey()
{
return SecurityContextHolder.getWechatUserKey();
}
/**
* 获取微信用户openId
*/
public static String getWechatOpenId()
{
return SecurityContextHolder.getWechatOpenId();
}
/**
* 获取微信登录用户信息
*/
public static LoginWechatUser getLoginWechatUser()
{
return SecurityContextHolder.get(SecurityConstants.LOGIN_WECHAT_USER, LoginWechatUser.class);
}
/**
* 根据request获取微信小程序用户请求token
*/
public static String getWechatToken(HttpServletRequest request)
{
// 从header获取token标识
String token = request.getHeader(TokenConstants.WECHAT_APP_AUTH);
return replaceTokenPrefix(token);
}
//***************************微信用户信息结束************************************
//***************************快手用户信息开始************************************
/**
* 获取快手用户ID
*/
public static Long getFhUserId()
{
return SecurityContextHolder.getFhUserId();
}
/**
* 获取快手用户名称
*/
public static String getFhUserName()
{
return SecurityContextHolder.getFhUserName();
}
/**
* 获取快手用户key
*/
public static String getFhUserKey()
{
return SecurityContextHolder.getFhUserKey();
}
/**
* 获取快手用户openId
*/
public static String getFhOpenId()
{
return SecurityContextHolder.getFhOpenId();
}
/**
* 获取快手登录用户信息
*/
public static LoginFhUser getLoginFhUser()
{
return SecurityContextHolder.get(SecurityConstants.LOGIN_FH_USER, LoginFhUser.class);
}
/**
* 根据request获取快手小程序用户请求token
*/
@ -135,6 +281,8 @@ public class SecurityUtils
return replaceTokenPrefix(token);
}
//***************************快手用户信息结束************************************
/**
* 裁剪token前缀
*/

Loading…
Cancel
Save