From 164c034d4c1637eb1aaf739b91e6ca346f111f8a Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Wed, 8 Dec 2021 16:35:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E7=BB=9C=E5=BC=82=E5=B8=B8feign?= =?UTF-8?q?=E5=B7=B2=E7=86=94=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starter/service/impl/UserInfoServiceImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/userinfo/starter/service/impl/UserInfoServiceImpl.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/userinfo/starter/service/impl/UserInfoServiceImpl.java index 4f5e811..48cd23a 100644 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/userinfo/starter/service/impl/UserInfoServiceImpl.java +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/cloud/userinfo/starter/service/impl/UserInfoServiceImpl.java @@ -8,13 +8,19 @@ import com.chinaunicom.mall.ebtp.cloud.userinfo.starter.service.UserInfoService; import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.remoting.RemoteTimeoutException; +import org.springframework.security.access.AccessDeniedException; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; +import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.REMOTE_ACCESS_FAILURE; +import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.TOKEN_EXPIRED; + @Slf4j @Service public class UserInfoServiceImpl implements UserInfoService { @@ -36,7 +42,13 @@ public class UserInfoServiceImpl implements UserInfoService { */ private BaseCacheUser convertToBusinessModel(SecurityEntity raw) { log.debug("userinfo: {}", raw); + if (Objects.isNull(raw)) {// 对象为空, 则说明网络异常feign已熔断 + throw new RemoteTimeoutException(REMOTE_ACCESS_FAILURE); + } + if (Objects.isNull(raw.getStaffId())) {// userid 为空则访问山分认证服务返回信息为null + throw new AccessDeniedException(TOKEN_EXPIRED); + } BaseCacheUser user = new BaseCacheUser().setUserId(raw.getStaffId()).setFullName(raw.getStaffName()) .setLoginName(raw.getUsername()).setAuthorityList(filterByEBTP(raw.getAuthorityList())) .setProvince(raw.getProvince()).setEmployeeNumber(raw.getExp()).setUserType(raw.getUserSource());