Browse Source

Merge branch 'feature-1.1-dev' into feature-1.1-bnyer-order

feature-1.1
wuxicheng 3 years ago
parent
commit
42446ffcf8
  1. 5
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/SecurityConstants.java
  2. 25
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java
  3. 9
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java
  4. 87
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java
  5. 183
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java
  6. 3
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java
  7. 3
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java
  8. 4
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java
  9. 3
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java
  10. 113
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java
  11. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

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

@ -7,6 +7,11 @@ package com.bnyer.common.core.constant;
*/ */
public class SecurityConstants public class SecurityConstants
{ {
/**
* 平台 抖音->10;快手->20;微信->30;微信艺术家->40;pc管理员->50
*/
public static final String PLATFORM = "platform";
//***************************PC信息开始************************************ //***************************PC信息开始************************************
/** /**
* 用户ID字段 * 用户ID字段

25
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/UserClientTypeConstants.java

@ -1,25 +0,0 @@
package com.bnyer.common.core.constant;
/**
* 客户端用户常量信息
*
* @author penny
*/
public class UserClientTypeConstants
{
/** 抖音用户 */
public static final String DU = "10";
/** 快手用户 */
public static final String KU = "20";
/** 微信用户 */
public static final String WU = "30";
/** 微信艺术家 */
public static final String WY = "40";
/** pc管理员 */
public static final String PU = "50";
}

9
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java

@ -3,6 +3,9 @@ package com.bnyer.common.core.enums;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
/** /**
* @author :WXC * @author :WXC
* @description : * @description :
@ -32,4 +35,10 @@ public enum EnumUserClientType {
} }
return null; return null;
} }
public static EnumUserClientType getTypeByCode(String code) {
return Arrays.stream(values())
.filter(type -> Objects.equals(type.getCode(), code))
.findFirst().orElse(EnumUserClientType.PU);
}
} }

87
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/UserInfoVo.java

@ -0,0 +1,87 @@
package com.bnyer.common.core.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Getter
@Setter
@ApiModel("统一用户响应类")
public class UserInfoVo implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@ApiModelProperty(value="第三方平台id")
private String openId;
@ApiModelProperty(value="昵称")
private String userName;
@ApiModelProperty(value="搜索码")
private String scanCode;
@ApiModelProperty(value="手机号")
private String phone;
@ApiModelProperty(value="头像img地址")
private String img;
@ApiModelProperty(value="简介")
private String intro;
@ApiModelProperty(value="余额")
private BigDecimal amt;
@ApiModelProperty(value="邀请码")
private String inviteCode;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
private String status;
@ApiModelProperty(value="第三方平台账号详情地址")
private String url;
@ApiModelProperty(value="是否为vip(0->否;1->是)")
private String isVip;
@ApiModelProperty(value="是否活跃(0->不活跃;1->活跃 连续10天以上更新内容)")
private String isHot;
@ApiModelProperty(value="是否显示 (0->隐藏;1->显示)")
private String isShow;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="创建时间")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="更新时间")
private Date updateTime;
@ApiModelProperty(value="排序")
private Integer sort;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="最后登录时间")
private Long lastLoginTime;
/**
* 登录IP地址
*/
private String ipaddr;
/**
* 用户类型 抖音->10;快手->20;微信->30;微信艺术家->40
*/
private int userClientType;
private static final long serialVersionUID = 1L;
}

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

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

3
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java

@ -3,6 +3,7 @@ package com.bnyer.common.security.service;
import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.CacheConstants;
import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.RedisKeyConstant;
import com.bnyer.common.core.constant.SecurityConstants; import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.JwtUtils;
import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
@ -57,10 +58,12 @@ public class CreatorTokenService
claimsMap.put(SecurityConstants.CREATOR_KEY, token); claimsMap.put(SecurityConstants.CREATOR_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_CREATOR_ID, creatorId); claimsMap.put(SecurityConstants.DETAILS_CREATOR_ID, creatorId);
claimsMap.put(SecurityConstants.DETAILS_PHONE, creatorPhone); claimsMap.put(SecurityConstants.DETAILS_PHONE, creatorPhone);
claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.WY.getCode()));
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap)); rspMap.put("access_token", JwtUtils.createToken(claimsMap));
rspMap.put("platform",String.valueOf(EnumUserClientType.WY.getCode()));
rspMap.put("userInfo",loginCreator.getCreator()); rspMap.put("userInfo",loginCreator.getCreator());
rspMap.put("expires_in", expireTime); rspMap.put("expires_in", expireTime);
return rspMap; return rspMap;

3
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java

@ -3,6 +3,7 @@ package com.bnyer.common.security.service;
import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.CacheConstants;
import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.RedisKeyConstant;
import com.bnyer.common.core.constant.SecurityConstants; import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.JwtUtils;
import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
@ -60,10 +61,12 @@ public class FhUserTokenService
claimsMap.put(SecurityConstants.DETAILS_FH_USER_ID, fhUserId); claimsMap.put(SecurityConstants.DETAILS_FH_USER_ID, fhUserId);
claimsMap.put(SecurityConstants.DETAILS_FH_USERNAME, fhUserName); claimsMap.put(SecurityConstants.DETAILS_FH_USERNAME, fhUserName);
claimsMap.put(SecurityConstants.DETAILS_FH_OPENID,openId); claimsMap.put(SecurityConstants.DETAILS_FH_OPENID,openId);
claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.KU.getCode()));
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap)); rspMap.put("access_token", JwtUtils.createToken(claimsMap));
rspMap.put("platform",String.valueOf(EnumUserClientType.KU.getCode()));
rspMap.put("userInfo",loginFhUser.getFhUser()); rspMap.put("userInfo",loginFhUser.getFhUser());
rspMap.put("expires_in", expireTime); rspMap.put("expires_in", expireTime);
return rspMap; return rspMap;

4
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java

@ -3,6 +3,7 @@ package com.bnyer.common.security.service;
import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.CacheConstants;
import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.RedisKeyConstant;
import com.bnyer.common.core.constant.SecurityConstants; import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.JwtUtils;
import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
@ -10,7 +11,6 @@ import com.bnyer.common.core.utils.ip.IpUtils;
import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.api.model.LoginTiktokUser; import com.bnyer.img.api.model.LoginTiktokUser;
import com.bnyer.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -61,10 +61,12 @@ public class TiktokUserTokenService
claimsMap.put(SecurityConstants.DETAILS_TIKTOK_USER_ID, tiktokUserId); claimsMap.put(SecurityConstants.DETAILS_TIKTOK_USER_ID, tiktokUserId);
claimsMap.put(SecurityConstants.DETAILS_TIKTOK_USERNAME, tiktokUserName); claimsMap.put(SecurityConstants.DETAILS_TIKTOK_USERNAME, tiktokUserName);
claimsMap.put(SecurityConstants.DETAILS_TIKTOK_OPENID,openId); claimsMap.put(SecurityConstants.DETAILS_TIKTOK_OPENID,openId);
claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.DU.getCode()));
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap)); rspMap.put("access_token", JwtUtils.createToken(claimsMap));
rspMap.put("platform",String.valueOf(EnumUserClientType.DU.getCode()));
rspMap.put("userInfo",loginTiktokUser.getTiktokUser()); rspMap.put("userInfo",loginTiktokUser.getTiktokUser());
rspMap.put("expires_in", expireTime); rspMap.put("expires_in", expireTime);
return rspMap; return rspMap;

3
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java

@ -3,6 +3,7 @@ package com.bnyer.common.security.service;
import com.bnyer.common.core.constant.CacheConstants; import com.bnyer.common.core.constant.CacheConstants;
import com.bnyer.common.core.constant.RedisKeyConstant; import com.bnyer.common.core.constant.RedisKeyConstant;
import com.bnyer.common.core.constant.SecurityConstants; import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.common.core.utils.JwtUtils; import com.bnyer.common.core.utils.JwtUtils;
import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
@ -60,10 +61,12 @@ public class WxUserTokenService
claimsMap.put(SecurityConstants.DETAILS_WECHAT_USER_ID, wxUserId); claimsMap.put(SecurityConstants.DETAILS_WECHAT_USER_ID, wxUserId);
claimsMap.put(SecurityConstants.DETAILS_WECHAT_USERNAME, wxUserName); claimsMap.put(SecurityConstants.DETAILS_WECHAT_USERNAME, wxUserName);
claimsMap.put(SecurityConstants.DETAILS_WECHAT_OPENID,openId); claimsMap.put(SecurityConstants.DETAILS_WECHAT_OPENID,openId);
claimsMap.put(SecurityConstants.PLATFORM, String.valueOf(EnumUserClientType.WU.getCode()));
// 接口返回信息 // 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>(); Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap)); rspMap.put("access_token", JwtUtils.createToken(claimsMap));
rspMap.put("platform",String.valueOf(EnumUserClientType.WU.getCode()));
rspMap.put("userInfo",loginWechatUser.getWxUser()); rspMap.put("userInfo",loginWechatUser.getWxUser());
rspMap.put("expires_in", expireTime); rspMap.put("expires_in", expireTime);
return rspMap; return rspMap;

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

@ -1,23 +1,21 @@
package com.bnyer.common.security.utils; package com.bnyer.common.security.utils;
import javax.servlet.http.HttpServletRequest; import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.constant.TokenConstants;
import com.bnyer.common.core.constant.UserClientTypeConstants; import com.bnyer.common.core.context.SecurityContextHolder;
import com.bnyer.common.core.enums.EnumUserClientType; import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.vo.UserInfoVo;
import com.bnyer.img.api.model.LoginCreator; import com.bnyer.img.api.model.LoginCreator;
import com.bnyer.img.api.model.LoginFhUser; import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.api.model.LoginTiktokUser; import com.bnyer.img.api.model.LoginTiktokUser;
import com.bnyer.img.api.model.LoginWechatUser; import com.bnyer.img.api.model.LoginWechatUser;
import com.bnyer.system.api.model.LoginUser; import com.bnyer.system.api.model.LoginUser;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.constant.TokenConstants;
import com.bnyer.common.core.context.SecurityContextHolder;
import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Objects; import java.util.Objects;
/** /**
@ -32,27 +30,84 @@ public class SecurityUtils
/** /**
* 根据从header中获取类型判断从而获取用户信息 * 根据从header中获取类型判断从而获取用户信息
* @param <T> 用户信息
* @return - * @return -
*/ */
public <T> T getUserInfo(){ public static UserInfoVo getUserInfo(){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String platform = ServletUtils.getRequest().getHeader("platform");
String platform = request.getHeader("platform"); if(StringUtils.isNotEmpty(platform)){
switch (platform){ EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform);
case UserClientTypeConstants.DU: switch (userClientType){
LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); case DU:
return (T) loginTikTokUser; UserInfoVo tiktokUserInfo = new UserInfoVo();
case UserClientTypeConstants.WU: LoginTiktokUser loginTikTokUser = getLoginTikTokUser();
LoginWechatUser loginWechatUser = getLoginWechatUser(); tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId());
return (T) loginWechatUser; tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId());
case UserClientTypeConstants.KU: tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName());
LoginFhUser loginFhUser = getLoginFhUser(); tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr());
return (T) loginFhUser; tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime());
case UserClientTypeConstants.WY: tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg());
LoginCreator loginCreator = getLoginCreator(); tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip());
return (T) loginCreator; tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime());
default: tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime());
break; tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort());
tiktokUserInfo.setUserClientType(userClientType.getType());
return tiktokUserInfo;
case WU:
UserInfoVo wechatUserInfo = new UserInfoVo();
LoginWechatUser loginWechatUser = getLoginWechatUser();
wechatUserInfo.setId(loginWechatUser.getWxUserId());
wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId());
wechatUserInfo.setUserName(loginWechatUser.getWxUserName());
wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr());
wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime());
wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg());
wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip());
wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime());
wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime());
wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort());
wechatUserInfo.setUserClientType(userClientType.getType());
return wechatUserInfo;
case KU:
UserInfoVo fhUserInfo = new UserInfoVo();
LoginFhUser loginFhUser = getLoginFhUser();
fhUserInfo.setId(loginFhUser.getFhUserId());
fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId());
fhUserInfo.setUserName(loginFhUser.getFhUserName());
fhUserInfo.setIpaddr(loginFhUser.getIpaddr());
fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime());
fhUserInfo.setImg(loginFhUser.getFhUser().getImg());
fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip());
fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime());
fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime());
fhUserInfo.setSort(loginFhUser.getFhUser().getSort());
fhUserInfo.setUserClientType(userClientType.getType());
return fhUserInfo;
case WY:
UserInfoVo creatorInfo = new UserInfoVo();
LoginCreator loginCreator = getLoginCreator();
creatorInfo.setId(loginCreator.getCreatorId());
creatorInfo.setPhone(loginCreator.getCreatorPhone());
creatorInfo.setScanCode(loginCreator.getCreator().getScanCode());
creatorInfo.setAmt(loginCreator.getCreator().getAmt());
creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode());
creatorInfo.setStatus(loginCreator.getCreator().getStatus());
creatorInfo.setUrl(loginCreator.getCreator().getUrl());
creatorInfo.setIsHot(loginCreator.getCreator().getIsHot());
creatorInfo.setIsShow(loginCreator.getCreator().getIsShow());
creatorInfo.setIntro(loginCreator.getCreator().getIntro());
creatorInfo.setUserName(loginCreator.getCreator().getName());
creatorInfo.setIpaddr(loginCreator.getIpaddr());
creatorInfo.setLastLoginTime(loginCreator.getLoginTime());
creatorInfo.setImg(loginCreator.getCreator().getImg());
creatorInfo.setIsShow(loginCreator.getCreator().getIsShow());
creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime());
creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime());
creatorInfo.setSort(loginCreator.getCreator().getSort());
creatorInfo.setUserClientType(userClientType.getType());
return creatorInfo;
default:
throw new ServiceException("userClientType 未匹配上对应用户类型");
}
} }
return null; return null;
} }

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.constant.TiktokConstant; import com.bnyer.common.core.constant.TiktokConstant;
import com.bnyer.common.core.domain.Feedback; import com.bnyer.common.core.domain.Feedback;
import com.bnyer.common.core.domain.PaintCdk;
import com.bnyer.common.core.domain.R; import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.*; import com.bnyer.common.core.dto.*;
import com.bnyer.common.core.web.controller.BaseController; import com.bnyer.common.core.web.controller.BaseController;
@ -22,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

Loading…
Cancel
Save