1. AttachmentSDK 增加了新的数据模型

2. Seata starter 调整了 seata包版本, 修改了统一配置文件
This commit is contained in:
ajaxfan
2021-02-08 11:58:53 +08:00
parent a9469363f4
commit 8b88f7314e
39 changed files with 540 additions and 191 deletions

View File

@ -0,0 +1 @@
package com.chinaunicom.mall.ebtp.common.base;

View File

@ -1,18 +1,18 @@
package com.chinaunicom.mall.ebtp.common.base.service.impl;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.SecurityEntity;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import lombok.extern.slf4j.Slf4j;
/**
* 缓存用户service实现层 获取缓存用户信息
*
@ -23,41 +23,80 @@ import lombok.extern.slf4j.Slf4j;
@Service
@Slf4j
public class BaseCacheUserServiceImpl implements IBaseCacheUserService {
// TODO 设置种子ID 对其雪花ID长度
private static final long ID_SEED = 1345977833027100000L;
// TODO 设置种子ID 对其雪花ID长度
private static final long ID_SEED = 1345977833027100000L;
private static final Map<String, BaseCacheUser> USERS = new ConcurrentHashMap<>();
private static final Map<String, BaseCacheUser> USERS = new ConcurrentHashMap<>();
@Override
public BaseCacheUser getCacheUser() {
try {
SecurityEntity securityEntity = (SecurityEntity) SecurityContextHolder.getContext().getAuthentication()
.getPrincipal();
log.debug("Current user principal: " + securityEntity);
@Override
public BaseCacheUser getCacheUser() {
BaseCacheUser user = null;
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes != null) {
HttpServletRequest request = attributes.getRequest();
String token = request.getHeader("JwtToken");
if (token != null) {
user = USERS.get(token);
}
}
log.info(" --------------- 当前用户信息:" + JsonUtils.objectToJson(user) + " ------------------------------");
return user;
}
return convertToBusinessModel(securityEntity);
} catch (Exception e) {
log.error(e.getMessage());
}
return new BaseCacheUser();
}
@Override
public Collection<BaseCacheUser> getUsers() {
return USERS.values();
}
@Override
public Collection<BaseCacheUser> getUsers() {
return USERS.values();
}
/**
* @param string
* @return
*/
// TODO: 山东框架使用未使用雪花ID存放字符串暂时使用该方法进行id转换
private Long getUserId(String rawUid) {
long id = ID_SEED;
byte[] bytes = rawUid.getBytes();
/**
* 构建用户对象模型
*
* @param rawObject
* @return
*/
private BaseCacheUser convertToBusinessModel(SecurityEntity raw) {
return new BaseCacheUser().setUserId(raw.getStaffId()).setFullName(raw.getStaffName())
.setLoginName(raw.getUsername()).setRoleIds(raw.getStaffId()).setOrganizationId(raw.getOu())
.setOrganizationName(raw.getOuName()).setAuthorityList(raw.getAuthorityList());
}
for (byte b : bytes) {
id += b;
}
return id;
}
static {
BaseCacheUser user = new BaseCacheUser().setUserId("1").setFullName("采购经理").setLoginName("caigou")
.setRoleIds("caigou").setOrganizationId("100").setOrganizationName("中国联通吉林分公司");
USERS.put(String.valueOf(user.getUserId()), user);
BaseCacheUser user0 = new BaseCacheUser().setUserId("2").setFullName("代理机构管理员").setLoginName("daili-admin")
.setRoleIds("daili-admin").setOrganizationId("100100").setOrganizationName("中兴代理公司");
USERS.put(String.valueOf(user0.getUserId()), user0);
BaseCacheUser user1 = new BaseCacheUser().setUserId("3").setFullName("代理机构子管理员").setLoginName("daili-subadmin")
.setRoleIds("daili-subadmin").setOrganizationId("100100").setOrganizationName("中兴代理公司");
USERS.put(String.valueOf(user1.getUserId()), user1);
BaseCacheUser user2 = new BaseCacheUser().setUserId("4").setFullName("项目经理1").setLoginName("daili1")
.setRoleIds("daili").setOrganizationId("100100").setOrganizationName("中兴代理公司");
USERS.put(String.valueOf(user2.getUserId()), user2);
BaseCacheUser user3 = new BaseCacheUser().setUserId("5").setFullName("项目经理2").setLoginName("daili2")
.setRoleIds("daili").setOrganizationId("100100").setOrganizationName("中兴代理公司");
USERS.put(String.valueOf(user3.getUserId()), user3);
for (int i = 0; i < 5; i++) {
BaseCacheUser user4 = new BaseCacheUser().setUserId(String.valueOf(6 + i)).setFullName("专家" + (i + 1))
.setLoginName("1300000000" + (i + 1)).setRoleIds("zhuanjia").setOrganizationId("666")
.setOrganizationName("专家公司");
USERS.put(String.valueOf(user4.getUserId()), user4);
}
for (int i = 0; i < 5; i++) {
BaseCacheUser user4 = new BaseCacheUser().setUserId(String.valueOf(11 + i)).setFullName("供应商" + (i + 1))
.setLoginName("gys" + (i + 1)).setRoleIds("gys").setOrganizationId("200" + (i + 1))
.setOrganizationName("供应商公司" + (i + 1));
USERS.put(String.valueOf(user4.getUserId()), user4);
}
}
}

View File

@ -1,10 +1,7 @@
package com.chinaunicom.mall.ebtp.common.config;
import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.AUTHORIZATION_HEADER;
import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.TOKEN_PREFIX;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@ -18,22 +15,14 @@ import feign.RequestTemplate;
@Configuration
public class FeignConfig implements RequestInterceptor {
/**
* @param template
*/
@Override
public void apply(RequestTemplate template) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (null != attributes) {
final String header = attributes.getRequest().getHeader(AUTHORIZATION_HEADER);// 提取request头信息
// 检查请求头是否包含 Bearer 前缀
if (StringUtils.startsWith(header, TOKEN_PREFIX)) {
String authToken = RegExUtils.replaceAll(header, TOKEN_PREFIX, "");// 提取 token 信息
template.header(AUTHORIZATION_HEADER, String.format("%s%s", TOKEN_PREFIX, authToken));
}
HttpServletRequest request = attributes.getRequest();
String token = request.getHeader("JwtToken");
template.header("JwtToken", token);
}
}