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());