|
|
|
@ -1,28 +1,24 @@ |
|
|
|
package com.bnyer.common.security.interceptor; |
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.bnyer.common.core.constant.TokenConstants; |
|
|
|
import com.bnyer.common.core.constant.UserClientTypeConstants; |
|
|
|
import com.bnyer.common.core.constant.SecurityConstants; |
|
|
|
import com.bnyer.common.core.context.SecurityContextHolder; |
|
|
|
import com.bnyer.common.core.enums.EnumUserClientType; |
|
|
|
import com.bnyer.common.core.utils.ServletUtils; |
|
|
|
import com.bnyer.common.core.utils.StringUtils; |
|
|
|
import com.bnyer.common.security.auth.*; |
|
|
|
import com.bnyer.common.security.utils.SecurityUtils; |
|
|
|
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 lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.web.method.HandlerMethod; |
|
|
|
import org.springframework.web.servlet.AsyncHandlerInterceptor; |
|
|
|
import com.bnyer.common.core.constant.SecurityConstants; |
|
|
|
import com.bnyer.common.core.context.SecurityContextHolder; |
|
|
|
import com.bnyer.common.core.utils.ServletUtils; |
|
|
|
import com.bnyer.common.core.utils.StringUtils; |
|
|
|
import com.bnyer.system.api.model.LoginUser; |
|
|
|
|
|
|
|
import java.util.Enumeration; |
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
/** |
|
|
|
* 自定义请求头拦截器,将Header数据封装到线程变量中方便获取 |
|
|
|
@ -42,97 +38,102 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor |
|
|
|
} |
|
|
|
|
|
|
|
String platform = request.getHeader("platform"); |
|
|
|
switch (platform){ |
|
|
|
//抖音
|
|
|
|
case UserClientTypeConstants.DU: |
|
|
|
String tiktokToken = SecurityUtils.getTiktokToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserId())); |
|
|
|
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserName())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserKey())); |
|
|
|
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokOpenId())); |
|
|
|
if(StringUtils.isNotEmpty(platform)){ |
|
|
|
EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); |
|
|
|
switch (userClientType){ |
|
|
|
//抖音
|
|
|
|
case DU: |
|
|
|
String tiktokToken = SecurityUtils.getTiktokToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserId())); |
|
|
|
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserName())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserKey())); |
|
|
|
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokOpenId())); |
|
|
|
|
|
|
|
LoginTiktokUser loginTiktokUser = TiktokAuthUtil.getLoginUser(tiktokToken); |
|
|
|
if (StringUtils.isNotNull(loginTiktokUser)) |
|
|
|
{ |
|
|
|
TiktokAuthUtil.verifyLoginUserExpire(loginTiktokUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginTiktokUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
LoginTiktokUser loginTiktokUser = TiktokAuthUtil.getLoginUser(tiktokToken); |
|
|
|
if (StringUtils.isNotNull(loginTiktokUser)) |
|
|
|
{ |
|
|
|
TiktokAuthUtil.verifyLoginUserExpire(loginTiktokUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginTiktokUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
//快手
|
|
|
|
case UserClientTypeConstants.KU: |
|
|
|
String fhToken = SecurityUtils.getFhToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getFhUserId())); |
|
|
|
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getFhUserName())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getFhUserKey())); |
|
|
|
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getFhOpenId())); |
|
|
|
case KU: |
|
|
|
String fhToken = SecurityUtils.getFhToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getFhUserId())); |
|
|
|
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getFhUserName())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getFhUserKey())); |
|
|
|
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getFhOpenId())); |
|
|
|
|
|
|
|
LoginFhUser loginFhUser = FhAuthUtil.getLoginUser(fhToken); |
|
|
|
if (StringUtils.isNotNull(loginFhUser)) |
|
|
|
{ |
|
|
|
FhAuthUtil.verifyLoginUserExpire(loginFhUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginFhUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
LoginFhUser loginFhUser = FhAuthUtil.getLoginUser(fhToken); |
|
|
|
if (StringUtils.isNotNull(loginFhUser)) |
|
|
|
{ |
|
|
|
FhAuthUtil.verifyLoginUserExpire(loginFhUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginFhUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
//微信
|
|
|
|
case UserClientTypeConstants.WU: |
|
|
|
String wechatToken = SecurityUtils.getWechatToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserId())); |
|
|
|
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserName())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserKey())); |
|
|
|
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getWechatOpenId())); |
|
|
|
case WU: |
|
|
|
String wechatToken = SecurityUtils.getWechatToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserId())); |
|
|
|
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserName())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserKey())); |
|
|
|
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getWechatOpenId())); |
|
|
|
|
|
|
|
LoginWechatUser loginWxUser = WechatAuthUtil.getLoginUser(wechatToken); |
|
|
|
if (StringUtils.isNotNull(loginWxUser)) |
|
|
|
{ |
|
|
|
WechatAuthUtil.verifyLoginUserExpire(loginWxUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginWxUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
LoginWechatUser loginWxUser = WechatAuthUtil.getLoginUser(wechatToken); |
|
|
|
if (StringUtils.isNotNull(loginWxUser)) |
|
|
|
{ |
|
|
|
WechatAuthUtil.verifyLoginUserExpire(loginWxUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginWxUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
//微信艺术家
|
|
|
|
case UserClientTypeConstants.WY: |
|
|
|
String creatorToken = SecurityUtils.getCreatorToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getCreatorId())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getCreatorKey())); |
|
|
|
log.info("SecurityContextHolderPhone,{}", JSON.toJSONString(SecurityContextHolder.getCreatorPhone())); |
|
|
|
case WY: |
|
|
|
String creatorToken = SecurityUtils.getCreatorToken(request); |
|
|
|
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)); |
|
|
|
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getCreatorId())); |
|
|
|
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getCreatorKey())); |
|
|
|
log.info("SecurityContextHolderPhone,{}", JSON.toJSONString(SecurityContextHolder.getCreatorPhone())); |
|
|
|
|
|
|
|
LoginCreator loginCreator = CreatorAuthUtil.getLoginUser(creatorToken); |
|
|
|
if (StringUtils.isNotNull(loginCreator)) |
|
|
|
{ |
|
|
|
CreatorAuthUtil.verifyLoginUserExpire(loginCreator); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginCreator); |
|
|
|
} |
|
|
|
break; |
|
|
|
LoginCreator loginCreator = CreatorAuthUtil.getLoginUser(creatorToken); |
|
|
|
if (StringUtils.isNotNull(loginCreator)) |
|
|
|
{ |
|
|
|
CreatorAuthUtil.verifyLoginUserExpire(loginCreator); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginCreator); |
|
|
|
} |
|
|
|
break; |
|
|
|
//PC管理员
|
|
|
|
case UserClientTypeConstants.PU: |
|
|
|
String pcToken = SecurityUtils.getToken(request); |
|
|
|
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)); |
|
|
|
case PU: |
|
|
|
String pcToken = SecurityUtils.getToken(request); |
|
|
|
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)); |
|
|
|
|
|
|
|
LoginUser loginUser = AuthUtil.getLoginUser(pcToken); |
|
|
|
if (StringUtils.isNotNull(loginUser)) |
|
|
|
{ |
|
|
|
AuthUtil.verifyLoginUserExpire(loginUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
LoginUser loginUser = AuthUtil.getLoginUser(pcToken); |
|
|
|
if (StringUtils.isNotNull(loginUser)) |
|
|
|
{ |
|
|
|
AuthUtil.verifyLoginUserExpire(loginUser); |
|
|
|
SecurityContextHolder.set(SecurityConstants.LOGIN_USER, loginUser); |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// String pcToken = SecurityUtils.getToken(request);
|
|
|
|
// String creatorToken = SecurityUtils.getCreatorToken(request);
|
|
|
|
// String tiktokToken = SecurityUtils.getTiktokToken(request);
|
|
|
|
|