diff --git a/kicc-auth/src/main/java/com/cloud/kicc/auth/provider/UserProviderTemplateImpl.java b/kicc-auth/src/main/java/com/cloud/kicc/auth/provider/UserProviderTemplateImpl.java index ba7fd4b9..56f55231 100644 --- a/kicc-auth/src/main/java/com/cloud/kicc/auth/provider/UserProviderTemplateImpl.java +++ b/kicc-auth/src/main/java/com/cloud/kicc/auth/provider/UserProviderTemplateImpl.java @@ -12,6 +12,8 @@ import com.cloud.kicc.system.api.feign.RemoteUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; +import java.util.Map; + @Component @RequiredArgsConstructor public class UserProviderTemplateImpl implements UserProviderTemplate { @@ -21,19 +23,27 @@ public class UserProviderTemplateImpl implements UserProviderTemplate private final RemoteAppService remoteAppService; @Override - public SsoUser selectByUserName(String userName) { - R result = remoteSsoUserService.selectByUserName(userName); + public SsoUser selectByUserNameAndParam(String userName, Map parameters) { + SsoUser ssoUser = new SsoUser() + .setUserName(userName) + .setIdentityProvider(parameters.get("identityProvider")); + ssoUser.setTenantId(parameters.get("tenantId")); + R result = remoteSsoUserService.selectByUserNameAndSsoUser(ssoUser); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "Controller invoke failed!")); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @Override - public SsoUser selectByPhone(String phone) { - R result = remoteAppService.selectByPhone(phone); + public SsoUser selectByPhoneAndParam(String phone, Map parameters) { + SsoUser ssoUser = new SsoUser() + .setPhone(phone) + .setIdentityProvider(parameters.get("identityProvider")); + ssoUser.setTenantId(parameters.get("tenantId")); + R result = remoteAppService.selectByPhoneAndSsoUser(ssoUser); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "Controller invoke failed!")); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -43,7 +53,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "Controller invoke failed!")); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/CustomAppAuthenticationProvider.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/CustomAppAuthenticationProvider.java index 9fd00a6a..c174ff7a 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/CustomAppAuthenticationProvider.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/CustomAppAuthenticationProvider.java @@ -18,6 +18,7 @@ import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsChecker; import java.util.Comparator; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; @@ -66,7 +67,7 @@ public class CustomAppAuthenticationProvider extends AbstractUserDetailsAuthenti CustomAppAuthenticationToken requestToken = (CustomAppAuthenticationToken) authentication; - // 此处已获得 客户端认证 获取对应 userDetailsService + // 此处已获得 客户端认证 获取对应 KiccUserDetailsService Authentication clientAuthentication = SecurityContextHolder.getContext().getAuthentication(); String clientId = clientAuthentication.getName(); Map userDetailsServiceMap = SpringUtil @@ -81,7 +82,7 @@ public class CustomAppAuthenticationProvider extends AbstractUserDetailsAuthenti // 手机号 String phone = authentication.getName(); - UserDetails userDetails = optional.get().loadUserByUsername(phone); + UserDetails userDetails = optional.get().loadUserByParam(phone, (LinkedHashMap)authentication.getCredentials()); // userDetails 校验 preAuthenticationChecks.check(userDetails); diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java index 35fd82d4..b7ef7116 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java @@ -20,6 +20,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.util.Assert; import java.util.Comparator; +import java.util.LinkedHashMap; import java.util.Map; import java.util.Optional; @@ -49,7 +50,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica */ private volatile String userNotFoundEncodedPassword; - private UserDetailsService userDetailsService; + private KiccUserDetailsService userDetailsService; private UserDetailsPasswordService userDetailsPasswordService; @@ -79,7 +80,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica throws AuthenticationException { prepareTimingAttackProtection(); - // 此处已获得 客户端认证 获取对应 userDetailsService + // 此处已获得 客户端认证 获取对应 KiccUserDetailsService Authentication clientAuthentication = SecurityContextHolder.getContext().getAuthentication(); // SSO NPE 处理 @@ -101,7 +102,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica } try { - UserDetails loadedUser = optional.get().loadUserByUsername(username); + UserDetails loadedUser = optional.get().loadUserByParam(username, (LinkedHashMap)authentication.getCredentials()); if (loadedUser == null) { throw new InternalAuthenticationServiceException( "UserDetailsService returned null, which is an interface contract violation"); @@ -158,11 +159,11 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica return this.passwordEncoder; } - public void setUserDetailsService(UserDetailsService userDetailsService) { + public void setUserDetailsService(KiccUserDetailsService userDetailsService) { this.userDetailsService = userDetailsService; } - protected UserDetailsService getUserDetailsService() { + protected KiccUserDetailsService getUserDetailsService() { return this.userDetailsService; } diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java index 98707f17..07a6f980 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java @@ -12,6 +12,10 @@ import org.springframework.core.Ordered; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; + +import java.util.LinkedHashMap; +import java.util.Map; /** *

@@ -21,7 +25,7 @@ import org.springframework.security.core.userdetails.UserDetailsService; * @Author: wangxiang4 * @Date: 2022/2/17 */ -public interface KiccUserDetailsService extends UserDetailsService, Ordered { +public interface KiccUserDetailsService extends Ordered { /** * 是否支持此客户端校验 @@ -82,12 +86,15 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered { ); } + /** - * 通过用户实体查询 - * @param casUser user + * Find the user based on the request parameters. In the actual implementation, the search + * @param username the username identifying the user whose data is required + * @param parameters Identify the request parameters for which data is required the username + * @return a fully populated user record (never null) + * @throws UsernameNotFoundException if the user could not be found or the user has no + * GrantedAuthority */ - default UserDetails loadUserByUser(CasUser casUser) { - return this.loadUserByUsername(casUser.getUsername()); - } + UserDetails loadUserByParam(String username, Map parameters) throws UsernameNotFoundException; } diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java index d1cc5a64..1d142b35 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java @@ -1,7 +1,6 @@ package com.cloud.kicc.common.security.service.impl; import com.cloud.kicc.common.core.constant.SecurityConstants; -import com.cloud.kicc.common.data.entity.CasUser; import com.cloud.kicc.common.data.entity.SsoUser; import com.cloud.kicc.common.security.service.KiccUserDetailsService; import com.cloud.kicc.common.security.template.UserProviderTemplate; @@ -11,6 +10,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UserDetails; +import java.util.Map; + /** *

* 用户详细信息 @@ -29,23 +30,15 @@ public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService { /** * 手机号登录 * @param phone 手机号 + * @param parameters 请求参数 */ @Override @SneakyThrows - public UserDetails loadUserByUsername(String phone) { - SsoUser result = userProviderTemplate.selectByPhone(phone); + public UserDetails loadUserByParam(String phone, Map parameters) { + SsoUser result = userProviderTemplate.selectByPhoneAndParam(phone, parameters); return getUserDetails(result); } - /** - * 通过用户实体查询 - * @param casUser user - */ - @Override - public UserDetails loadUserByUser(CasUser casUser) { - return this.loadUserByUsername(casUser.getPhone()); - } - /** * 是否支持此客户端校验 * @param clientId 目标客户端 diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java index ebc3ccae..397ad374 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java @@ -10,6 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Primary; import org.springframework.security.core.userdetails.UserDetails; +import java.util.Map; + /** *

* 用户详细信息 @@ -29,11 +31,12 @@ public class KiccUserDetailsServiceImpl implements KiccUserDetailsService { /** * 用户名密码登录 * @param username 用户名 + * @param parameters 请求参数 */ @Override @SneakyThrows - public UserDetails loadUserByUsername(String username) { - SsoUser result = userProviderTemplate.selectByUserName(username); + public UserDetails loadUserByParam(String username, Map parameters) { + SsoUser result = userProviderTemplate.selectByUserNameAndParam(username, parameters); return getUserDetails(result); } diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/template/UserProviderTemplate.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/template/UserProviderTemplate.java index 6455d22f..5d1d4d09 100644 --- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/template/UserProviderTemplate.java +++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/template/UserProviderTemplate.java @@ -3,6 +3,8 @@ package com.cloud.kicc.common.security.template; import com.cloud.kicc.common.data.entity.CasUser; import com.cloud.kicc.common.data.entity.SsoUser; +import java.util.Map; + /** *

* The user must implement the template @@ -14,11 +16,11 @@ import com.cloud.kicc.common.data.entity.SsoUser; */ public interface UserProviderTemplate { - default SsoUser selectByUserName(String userName) { + default SsoUser selectByUserNameAndParam(String userName, Map parameters) { return null; } - default SsoUser selectByPhone(String phone) { + default SsoUser selectByPhoneAndParam(String phone, Map parameters) { return null; }; diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteAppService.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteAppService.java index 166f4f33..20c40d47 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteAppService.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteAppService.java @@ -22,10 +22,10 @@ public interface RemoteAppService { /** * 通过手机号码查询用户 - * @param phone 手机号码 + * @param ssoUser sso用户 * @return R */ - @GetMapping(value = AppConstants.APP_SYSTEM + "/app/selectByPhone/{phone}", headers = SecurityConstants.HEADER_FROM_IN) - R selectByPhone(@PathVariable("phone") String phone); + @GetMapping(value = AppConstants.APP_SYSTEM + "/app/selectByPhoneAndSsoUser", headers = SecurityConstants.HEADER_FROM_IN) + R selectByPhoneAndSsoUser(SsoUser ssoUser); } diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteSsoUserService.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteSsoUserService.java index a5029472..4a6c03e5 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteSsoUserService.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteSsoUserService.java @@ -22,10 +22,10 @@ public interface RemoteSsoUserService { /** * 通过用户名查询用户 - * @param userName 用户名 + * @param ssoUser sso用户 * @return R */ - @GetMapping(value = AppConstants.APP_SYSTEM + "/ssoUser/selectByUserName/{userName}", headers = SecurityConstants.HEADER_FROM_IN) - R selectByUserName(@PathVariable("userName") String userName); + @GetMapping(value = AppConstants.APP_SYSTEM + "/ssoUser/selectByUserNameAndSsoUser", headers = SecurityConstants.HEADER_FROM_IN) + R selectByUserNameAndSsoUser(SsoUser ssoUser); } diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/UserProviderTemplateImpl.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/UserProviderTemplateImpl.java index 49e13594..aeb40f83 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/UserProviderTemplateImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/UserProviderTemplateImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.commonbiz.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.exception.SecurityCheckedException; @@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByCasUserId(String casUserId) { R result = remoteUserService.selectByCasUserId(casUserId); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-monitor-biz/src/main/java/com/cloud/kicc/monitor/service/impl/UserProviderTemplateImpl.java b/kicc-platform/kicc-platform-biz/kicc-monitor-biz/src/main/java/com/cloud/kicc/monitor/service/impl/UserProviderTemplateImpl.java index 4099f174..b6250137 100644 --- a/kicc-platform/kicc-platform-biz/kicc-monitor-biz/src/main/java/com/cloud/kicc/monitor/service/impl/UserProviderTemplateImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-monitor-biz/src/main/java/com/cloud/kicc/monitor/service/impl/UserProviderTemplateImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.monitor.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.exception.SecurityCheckedException; @@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByCasUserId(String casUserId) { R result = remoteUserService.selectByCasUserId(casUserId); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-report-biz/src/main/java/com/cloud/kicc/report/service/impl/UserProviderTemplateImpl.java b/kicc-platform/kicc-platform-biz/kicc-report-biz/src/main/java/com/cloud/kicc/report/service/impl/UserProviderTemplateImpl.java index 0dc77f0e..2ea17d72 100644 --- a/kicc-platform/kicc-platform-biz/kicc-report-biz/src/main/java/com/cloud/kicc/report/service/impl/UserProviderTemplateImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-report-biz/src/main/java/com/cloud/kicc/report/service/impl/UserProviderTemplateImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.report.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.exception.SecurityCheckedException; @@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByCasUserId(String casUserId) { R result = remoteUserService.selectByCasUserId(casUserId); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java index 5a003fa1..59365ede 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java @@ -3,8 +3,8 @@ package com.cloud.kicc.system.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.AppConstants; -import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.common.data.entity.SsoUser; +import com.cloud.kicc.common.security.annotation.Inner; import com.cloud.kicc.system.service.AppService; import com.cloud.kicc.system.service.ISsoUserService; import io.swagger.annotations.Api; @@ -42,13 +42,15 @@ public class AppController { /** * 获取指定用户全部信息 - * @param phone 手机号 + * @param ssoUser SSO用户 * @return 用户信息 */ @Inner - @GetMapping("/selectByPhone/{phone:\\d+}") - public R selectByPhone(@PathVariable String phone) { - List user = iSsoUserService.list(Wrappers.lambdaQuery().eq(SsoUser::getPhone, phone)); + @GetMapping("/selectByPhoneAndSsoUser") + public R selectByPhoneAndSsoUser(SsoUser ssoUser) { + List user = iSsoUserService.list(Wrappers.lambdaQuery() + .eq(SsoUser::getPhone, ssoUser.getPhone()) + .eq(SsoUser::getIdentityProvider, ssoUser.getIdentityProvider())); if (user.isEmpty()) { return R.error("该手机号不存在,请先注册!"); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java index 5c2fdec8..b4880abc 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java @@ -89,9 +89,11 @@ public class SsoUserController { } @Inner - @GetMapping("/selectByUserName/{userName}") - public R selectByUserName(@PathVariable String userName) { - SsoUser user = iSsoUserService.getOne(Wrappers.lambdaQuery().eq(SsoUser::getUserName, userName)); + @GetMapping("/selectByUserNameAndSsoUser") + public R selectByUserNameAndSsoUser(SsoUser ssoUser) { + SsoUser user = iSsoUserService.getOne(Wrappers.lambdaQuery() + .eq(SsoUser::getUserName, ssoUser.getUserName()) + .eq(SsoUser::getIdentityProvider, ssoUser.getIdentityProvider())); if (user == null) { return R.error("该用户不存在,请注册!"); } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserProviderTemplateImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserProviderTemplateImpl.java index 39ce3328..5af0ba9e 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserProviderTemplateImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserProviderTemplateImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.exception.SecurityCheckedException; @@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByCasUserId(String casUserId) { R result = remoteUserService.selectByCasUserId(casUserId); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-template-biz/src/main/java/com/cloud/kicc/template/provide/UserProviderTemplateImpl.java b/kicc-platform/kicc-platform-biz/kicc-template-biz/src/main/java/com/cloud/kicc/template/provide/UserProviderTemplateImpl.java index b1547af1..0eb096fb 100644 --- a/kicc-platform/kicc-platform-biz/kicc-template-biz/src/main/java/com/cloud/kicc/template/provide/UserProviderTemplateImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-template-biz/src/main/java/com/cloud/kicc/template/provide/UserProviderTemplateImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.template.provide; +import cn.hutool.core.util.ObjectUtil; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.exception.SecurityCheckedException; @@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByCasUserId(String casUserId) { R result = remoteUserService.selectByCasUserId(casUserId); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } diff --git a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/service/impl/UserProviderTemplateImpl.java b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/service/impl/UserProviderTemplateImpl.java index bb4b4281..5a749fe1 100644 --- a/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/service/impl/UserProviderTemplateImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/service/impl/UserProviderTemplateImpl.java @@ -1,5 +1,6 @@ package com.cloud.kicc.workflow.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.security.exception.SecurityCheckedException; @@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByCasUserId(String casUserId) { R result = remoteUserService.selectByCasUserId(casUserId); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); } @@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate public KiccUser selectByUserId(String userid) { R result = remoteUserService.selectByUserId(userid); if (result.getCode() != R.SUCCESS) { - throw new SecurityCheckedException("Controller invoke failed!"); + throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!")); } return result.getData(); }