|
@@ -4,28 +4,25 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.dragoninfo.dcuc.auth.auth.facade.IBimBusinessFacade;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.bim.BimUserInfoItemRespVO;
|
|
|
import com.dragoninfo.dcuc.auth.sub.dto.AuthUserContactDTO;
|
|
|
-import com.dragoninfo.dcuc.auth.sub.dto.AuthUserDTO;
|
|
|
-import com.dragoninfo.dcuc.auth.sub.dto.DcucUserInfo;
|
|
|
import com.dragoninfo.dcuc.auth.sub.facade.IAuthUserInfoFacade;
|
|
|
-import com.dragoninfo.dcuc.auth.sub.facade.IUserCenterApiFacade;
|
|
|
-import com.dragoninfo.dcuc.authweb.config.DcucAuthWebConfig;
|
|
|
-import com.dragoninfo.dcuc.common.Constants;
|
|
|
+import com.dragoninfo.dcuc.authweb.util.HeadTokenUtils;
|
|
|
+import com.dragoninfo.dcuc.common.enums.UserExtInfoEnum;
|
|
|
import com.dragonsoft.duceap.base.api.security.ISecurityAccessTokenResolver;
|
|
|
import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
|
|
|
import com.dragonsoft.duceap.base.entity.security.SecurityUser;
|
|
|
import com.dragonsoft.duceap.commons.util.UrlMatcher;
|
|
|
import com.dragonsoft.duceap.commons.util.json.JsonUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.string.StringUtils;
|
|
|
-import com.dragonsoft.duceap.security.dcuc.entity.DcucUser;
|
|
|
import com.dragonsoft.duceap.security.jwt.SecurityUserCacheResolver;
|
|
|
import com.dragonsoft.duceap.security.jwt.securityaccess.SecurityAccessTokenProperties;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.autoconfigure.web.ServerProperties;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
-import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @author huangzqa
|
|
@@ -74,10 +71,14 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- String userToken = request.getHeader(secAccessProp.getUserTokenHeaderName());
|
|
|
- String appToken = request.getHeader(Constants.APP_TOKEN);
|
|
|
+ String userToken = HeadTokenUtils.getUserToken(request);
|
|
|
+ String appToken = HeadTokenUtils.getAppToken(request);
|
|
|
|
|
|
- log.info("userToken:{},appToken:{}", userToken, appToken);
|
|
|
+ log.info("用户令牌id:{} , 应用令牌id:{}", userToken, appToken);
|
|
|
+ if (StrUtil.isBlank(userToken)) {
|
|
|
+ log.error("用户令牌为空");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
if (cacheResolver != null) {
|
|
|
//从缓存中取
|
|
@@ -90,15 +91,11 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (StrUtil.isBlank(userToken)) {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
BimUserInfoItemRespVO userInfoItemRespVO = bimBusinessFacade.getUserInfoByUserToken(userToken);
|
|
|
String sfzh = userInfoItemRespVO.getSfzh();
|
|
|
+ log.info("认证结果返回人员身份证号:{}, ", sfzh);
|
|
|
|
|
|
AuthUserContactDTO userInfo = authUserInfoFacade.getUserWithContactByIdcard(sfzh);
|
|
|
- log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));
|
|
|
|
|
|
SecurityUser securityUser = new SecurityUser();
|
|
|
securityUser.setId(userInfo.getId());
|
|
@@ -118,15 +115,21 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
|
|
|
securityUser.setEmail(userInfo.getEmail());
|
|
|
securityUser.setQq(userInfo.getQqAccount());
|
|
|
securityUser.setWechat(userInfo.getWxAccount());
|
|
|
+ securityUser.setUserType(userInfo.getUserType());
|
|
|
securityUser.setSecurityOrgs(new String[]{userInfo.getOrgCode()});
|
|
|
- log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));
|
|
|
+ // 设置令牌扩展信息
|
|
|
+ Map<String, Object> map = new HashMap<>(UserExtInfoEnum.values().length);
|
|
|
+ map.put(UserExtInfoEnum.USER_TOKEN_ID.getValue(), userToken);
|
|
|
+ map.put(UserExtInfoEnum.APP_TOKEN_ID.getValue(), appToken);
|
|
|
+ securityUser.setExtendtions(map);
|
|
|
+ log.info("人员身份证号:{}, 人员信息:{}", sfzh, JsonUtils.toJSONString(userInfo));
|
|
|
|
|
|
//放入缓存
|
|
|
if (cacheResolver != null) {
|
|
|
cacheResolver.put(userToken, securityUser);
|
|
|
}
|
|
|
|
|
|
- log.info("return idcard:{}, securityUser :{}", sfzh, JsonUtils.toJSONString(securityUser));
|
|
|
+ log.info("返回人员身份证号:{}, 登录人员信息:{}", sfzh, JsonUtils.toJSONString(securityUser));
|
|
|
|
|
|
return securityUser;
|
|
|
}
|