diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java index 144c3fc5..12b36aad 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java @@ -8,8 +8,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cloud.kicc.common.core.api.R; +import com.cloud.kicc.common.core.constant.CommonConstants; import com.cloud.kicc.common.core.constant.SecurityConstants; import com.cloud.kicc.common.core.exception.CheckedException; +import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.commonbiz.api.entity.*; import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper; import com.cloud.kicc.commonbiz.service.*; @@ -18,6 +20,10 @@ import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.feign.RemoteUserService; import lombok.RequiredArgsConstructor; import okhttp3.OkHttpClient; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; @@ -57,11 +63,26 @@ public class PushApplicationServiceImpl extends ServiceImpl result = remoteUserService.selectByUserId(pushChatMessage.getPushTypeId(), SecurityConstants.FROM_IN); + R result = remoteUserService.selectByUserId(pushChatMessage.getUserId(), SecurityConstants.FROM_IN); if (result == null || result.getData() == null) { throw new CheckedException("用户不存在"); } - pushChatMessage.setTenantId(result.getData().getTenantId()); + User user = result.getData(); + KiccUser kiccUser = new KiccUser( + user.getId(), + user.getDeptId(), + user.getUserName(), + SecurityConstants.BCRYPT + user.getPassword(), + user.getPhone(), + user.getTenantId(), + true, + true, + true, + StrUtil.equals(user.getStatus(), CommonConstants.STATUS_NORMAL), + AuthorityUtils.createAuthorityList(user.getPermissions()) + ); + Authentication authentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities()); + SecurityContextHolder.getContext().setAuthentication(authentication); PushApplication pushApplication = baseMapper.selectOne(Wrappers.lambdaQuery() .eq(PushApplication::getMessageSecret, pushChatMessage.getMessageSecret()) diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java index 1465c663..85d7d2a7 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java @@ -98,7 +98,7 @@ public class UserController { } @Inner - @GetMapping("getUser/{id:\\w+}") + @GetMapping("/getUser/{id:\\w+}") public R getUser(@PathVariable("id") String id) { User user = userService.getById(id); if (user == null) {