Browse Source

chore: Support multi login

master
wangxiang 2 years ago
parent
commit
02dcd8d5cb
No known key found for this signature in database
GPG Key ID: 1BA7946AB6B232E4
  1. 24
      kicc-auth/src/main/java/com/cloud/kicc/auth/provider/UserProviderTemplateImpl.java
  2. 5
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/CustomAppAuthenticationProvider.java
  3. 11
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/grant/provider/KiccDaoAuthenticationProvider.java
  4. 19
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
  5. 17
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccAppUserDetailsServiceImpl.java
  6. 7
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/impl/KiccUserDetailsServiceImpl.java
  7. 6
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/template/UserProviderTemplate.java
  8. 6
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteAppService.java
  9. 6
      kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/feign/RemoteSsoUserService.java
  10. 5
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/UserProviderTemplateImpl.java
  11. 5
      kicc-platform/kicc-platform-biz/kicc-monitor-biz/src/main/java/com/cloud/kicc/monitor/service/impl/UserProviderTemplateImpl.java
  12. 5
      kicc-platform/kicc-platform-biz/kicc-report-biz/src/main/java/com/cloud/kicc/report/service/impl/UserProviderTemplateImpl.java
  13. 12
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/AppController.java
  14. 8
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/SsoUserController.java
  15. 5
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserProviderTemplateImpl.java
  16. 5
      kicc-platform/kicc-platform-biz/kicc-template-biz/src/main/java/com/cloud/kicc/template/provide/UserProviderTemplateImpl.java
  17. 5
      kicc-platform/kicc-platform-biz/kicc-workflow-biz/src/main/java/com/cloud/kicc/workflow/service/impl/UserProviderTemplateImpl.java

24
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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Map;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser> { public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser> {
@ -21,19 +23,27 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
private final RemoteAppService remoteAppService; private final RemoteAppService remoteAppService;
@Override @Override
public SsoUser selectByUserName(String userName) { public SsoUser selectByUserNameAndParam(String userName, Map<String, String> parameters) {
R<SsoUser> result = remoteSsoUserService.selectByUserName(userName); SsoUser ssoUser = new SsoUser()
.setUserName(userName)
.setIdentityProvider(parameters.get("identityProvider"));
ssoUser.setTenantId(parameters.get("tenantId"));
R<SsoUser> result = remoteSsoUserService.selectByUserNameAndSsoUser(ssoUser);
if (result.getCode() != R.SUCCESS) { 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(); return result.getData();
} }
@Override @Override
public SsoUser selectByPhone(String phone) { public SsoUser selectByPhoneAndParam(String phone, Map<String, String> parameters) {
R<SsoUser> result = remoteAppService.selectByPhone(phone); SsoUser ssoUser = new SsoUser()
.setPhone(phone)
.setIdentityProvider(parameters.get("identityProvider"));
ssoUser.setTenantId(parameters.get("tenantId"));
R<SsoUser> result = remoteAppService.selectByPhoneAndSsoUser(ssoUser);
if (result.getCode() != R.SUCCESS) { 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(); return result.getData();
} }
@ -43,7 +53,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { 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(); return result.getData();
} }

5
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 org.springframework.security.core.userdetails.UserDetailsChecker;
import java.util.Comparator; import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -66,7 +67,7 @@ public class CustomAppAuthenticationProvider extends AbstractUserDetailsAuthenti
CustomAppAuthenticationToken requestToken = (CustomAppAuthenticationToken) authentication; CustomAppAuthenticationToken requestToken = (CustomAppAuthenticationToken) authentication;
// 此处已获得 客户端认证 获取对应 userDetailsService // 此处已获得 客户端认证 获取对应 KiccUserDetailsService
Authentication clientAuthentication = SecurityContextHolder.getContext().getAuthentication(); Authentication clientAuthentication = SecurityContextHolder.getContext().getAuthentication();
String clientId = clientAuthentication.getName(); String clientId = clientAuthentication.getName();
Map<String, KiccUserDetailsService> userDetailsServiceMap = SpringUtil Map<String, KiccUserDetailsService> userDetailsServiceMap = SpringUtil
@ -81,7 +82,7 @@ public class CustomAppAuthenticationProvider extends AbstractUserDetailsAuthenti
// 手机号 // 手机号
String phone = authentication.getName(); String phone = authentication.getName();
UserDetails userDetails = optional.get().loadUserByUsername(phone); UserDetails userDetails = optional.get().loadUserByParam(phone, (LinkedHashMap<String, String>)authentication.getCredentials());
// userDetails 校验 // userDetails 校验
preAuthenticationChecks.check(userDetails); preAuthenticationChecks.check(userDetails);

11
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 org.springframework.util.Assert;
import java.util.Comparator; import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -49,7 +50,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica
*/ */
private volatile String userNotFoundEncodedPassword; private volatile String userNotFoundEncodedPassword;
private UserDetailsService userDetailsService; private KiccUserDetailsService userDetailsService;
private UserDetailsPasswordService userDetailsPasswordService; private UserDetailsPasswordService userDetailsPasswordService;
@ -79,7 +80,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica
throws AuthenticationException { throws AuthenticationException {
prepareTimingAttackProtection(); prepareTimingAttackProtection();
// 此处已获得 客户端认证 获取对应 userDetailsService // 此处已获得 客户端认证 获取对应 KiccUserDetailsService
Authentication clientAuthentication = SecurityContextHolder.getContext().getAuthentication(); Authentication clientAuthentication = SecurityContextHolder.getContext().getAuthentication();
// SSO NPE 处理 // SSO NPE 处理
@ -101,7 +102,7 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica
} }
try { try {
UserDetails loadedUser = optional.get().loadUserByUsername(username); UserDetails loadedUser = optional.get().loadUserByParam(username, (LinkedHashMap<String, String>)authentication.getCredentials());
if (loadedUser == null) { if (loadedUser == null) {
throw new InternalAuthenticationServiceException( throw new InternalAuthenticationServiceException(
"UserDetailsService returned null, which is an interface contract violation"); "UserDetailsService returned null, which is an interface contract violation");
@ -158,11 +159,11 @@ public class KiccDaoAuthenticationProvider extends AbstractUserDetailsAuthentica
return this.passwordEncoder; return this.passwordEncoder;
} }
public void setUserDetailsService(UserDetailsService userDetailsService) { public void setUserDetailsService(KiccUserDetailsService userDetailsService) {
this.userDetailsService = userDetailsService; this.userDetailsService = userDetailsService;
} }
protected UserDetailsService getUserDetailsService() { protected KiccUserDetailsService getUserDetailsService() {
return this.userDetailsService; return this.userDetailsService;
} }

19
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.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import java.util.LinkedHashMap;
import java.util.Map;
/** /**
*<p> *<p>
@ -21,7 +25,7 @@ import org.springframework.security.core.userdetails.UserDetailsService;
* @Author: wangxiang4 * @Author: wangxiang4
* @Date: 2022/2/17 * @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 {
); );
} }
/** /**
* 通过用户实体查询 * Find the user based on the request parameters. In the actual implementation, the search
* @param casUser user * @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 <code>null</code>)
* @throws UsernameNotFoundException if the user could not be found or the user has no
* GrantedAuthority
*/ */
default UserDetails loadUserByUser(CasUser casUser) { UserDetails loadUserByParam(String username, Map<String, String> parameters) throws UsernameNotFoundException;
return this.loadUserByUsername(casUser.getUsername());
}
} }

17
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; package com.cloud.kicc.common.security.service.impl;
import com.cloud.kicc.common.core.constant.SecurityConstants; 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.data.entity.SsoUser;
import com.cloud.kicc.common.security.service.KiccUserDetailsService; import com.cloud.kicc.common.security.service.KiccUserDetailsService;
import com.cloud.kicc.common.security.template.UserProviderTemplate; 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.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import java.util.Map;
/** /**
*<p> *<p>
* 用户详细信息 * 用户详细信息
@ -29,23 +30,15 @@ public class KiccAppUserDetailsServiceImpl implements KiccUserDetailsService {
/** /**
* 手机号登录 * 手机号登录
* @param phone 手机号 * @param phone 手机号
* @param parameters 请求参数
*/ */
@Override @Override
@SneakyThrows @SneakyThrows
public UserDetails loadUserByUsername(String phone) { public UserDetails loadUserByParam(String phone, Map<String, String> parameters) {
SsoUser result = userProviderTemplate.selectByPhone(phone); SsoUser result = userProviderTemplate.selectByPhoneAndParam(phone, parameters);
return getUserDetails(result); return getUserDetails(result);
} }
/**
* 通过用户实体查询
* @param casUser user
*/
@Override
public UserDetails loadUserByUser(CasUser casUser) {
return this.loadUserByUsername(casUser.getPhone());
}
/** /**
* 是否支持此客户端校验 * 是否支持此客户端校验
* @param clientId 目标客户端 * @param clientId 目标客户端

7
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.context.annotation.Primary;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import java.util.Map;
/** /**
*<p> *<p>
* 用户详细信息 * 用户详细信息
@ -29,11 +31,12 @@ public class KiccUserDetailsServiceImpl implements KiccUserDetailsService {
/** /**
* 用户名密码登录 * 用户名密码登录
* @param username 用户名 * @param username 用户名
* @param parameters 请求参数
*/ */
@Override @Override
@SneakyThrows @SneakyThrows
public UserDetails loadUserByUsername(String username) { public UserDetails loadUserByParam(String username, Map<String, String> parameters) {
SsoUser result = userProviderTemplate.selectByUserName(username); SsoUser result = userProviderTemplate.selectByUserNameAndParam(username, parameters);
return getUserDetails(result); return getUserDetails(result);
} }

6
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.CasUser;
import com.cloud.kicc.common.data.entity.SsoUser; import com.cloud.kicc.common.data.entity.SsoUser;
import java.util.Map;
/** /**
*<p> *<p>
* The user must implement the template * The user must implement the template
@ -14,11 +16,11 @@ import com.cloud.kicc.common.data.entity.SsoUser;
*/ */
public interface UserProviderTemplate<T extends CasUser> { public interface UserProviderTemplate<T extends CasUser> {
default SsoUser selectByUserName(String userName) { default SsoUser selectByUserNameAndParam(String userName, Map<String, String> parameters) {
return null; return null;
} }
default SsoUser selectByPhone(String phone) { default SsoUser selectByPhoneAndParam(String phone, Map<String, String> parameters) {
return null; return null;
}; };

6
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 * @return R
*/ */
@GetMapping(value = AppConstants.APP_SYSTEM + "/app/selectByPhone/{phone}", headers = SecurityConstants.HEADER_FROM_IN) @GetMapping(value = AppConstants.APP_SYSTEM + "/app/selectByPhoneAndSsoUser", headers = SecurityConstants.HEADER_FROM_IN)
R<SsoUser> selectByPhone(@PathVariable("phone") String phone); R<SsoUser> selectByPhoneAndSsoUser(SsoUser ssoUser);
} }

6
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 * @return R
*/ */
@GetMapping(value = AppConstants.APP_SYSTEM + "/ssoUser/selectByUserName/{userName}", headers = SecurityConstants.HEADER_FROM_IN) @GetMapping(value = AppConstants.APP_SYSTEM + "/ssoUser/selectByUserNameAndSsoUser", headers = SecurityConstants.HEADER_FROM_IN)
R<SsoUser> selectByUserName(@PathVariable("userName") String userName); R<SsoUser> selectByUserNameAndSsoUser(SsoUser ssoUser);
} }

5
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; 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.core.api.R;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; import com.cloud.kicc.common.security.exception.SecurityCheckedException;
@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByCasUserId(String casUserId) { public KiccUser selectByCasUserId(String casUserId) {
R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId); R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }
@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }

5
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; 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.core.api.R;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; import com.cloud.kicc.common.security.exception.SecurityCheckedException;
@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByCasUserId(String casUserId) { public KiccUser selectByCasUserId(String casUserId) {
R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId); R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }
@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }

5
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; 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.core.api.R;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; import com.cloud.kicc.common.security.exception.SecurityCheckedException;
@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByCasUserId(String casUserId) { public KiccUser selectByCasUserId(String casUserId) {
R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId); R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }
@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }

12
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.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants; 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.data.entity.SsoUser;
import com.cloud.kicc.common.security.annotation.Inner;
import com.cloud.kicc.system.service.AppService; import com.cloud.kicc.system.service.AppService;
import com.cloud.kicc.system.service.ISsoUserService; import com.cloud.kicc.system.service.ISsoUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -42,13 +42,15 @@ public class AppController {
/** /**
* 获取指定用户全部信息 * 获取指定用户全部信息
* @param phone 手机号 * @param ssoUser SSO用户
* @return 用户信息 * @return 用户信息
*/ */
@Inner @Inner
@GetMapping("/selectByPhone/{phone:\\d+}") @GetMapping("/selectByPhoneAndSsoUser")
public R<SsoUser> selectByPhone(@PathVariable String phone) { public R<SsoUser> selectByPhoneAndSsoUser(SsoUser ssoUser) {
List<SsoUser> user = iSsoUserService.list(Wrappers.<SsoUser>lambdaQuery().eq(SsoUser::getPhone, phone)); List<SsoUser> user = iSsoUserService.list(Wrappers.<SsoUser>lambdaQuery()
.eq(SsoUser::getPhone, ssoUser.getPhone())
.eq(SsoUser::getIdentityProvider, ssoUser.getIdentityProvider()));
if (user.isEmpty()) { if (user.isEmpty()) {
return R.error("该手机号不存在,请先注册!"); return R.error("该手机号不存在,请先注册!");
} }

8
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 @Inner
@GetMapping("/selectByUserName/{userName}") @GetMapping("/selectByUserNameAndSsoUser")
public R selectByUserName(@PathVariable String userName) { public R selectByUserNameAndSsoUser(SsoUser ssoUser) {
SsoUser user = iSsoUserService.getOne(Wrappers.<SsoUser>lambdaQuery().eq(SsoUser::getUserName, userName)); SsoUser user = iSsoUserService.getOne(Wrappers.<SsoUser>lambdaQuery()
.eq(SsoUser::getUserName, ssoUser.getUserName())
.eq(SsoUser::getIdentityProvider, ssoUser.getIdentityProvider()));
if (user == null) { if (user == null) {
return R.error("该用户不存在,请注册!"); return R.error("该用户不存在,请注册!");
} }

5
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; 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.core.api.R;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; import com.cloud.kicc.common.security.exception.SecurityCheckedException;
@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByCasUserId(String casUserId) { public KiccUser selectByCasUserId(String casUserId) {
R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId); R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }
@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }

5
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; 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.core.api.R;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; import com.cloud.kicc.common.security.exception.SecurityCheckedException;
@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByCasUserId(String casUserId) { public KiccUser selectByCasUserId(String casUserId) {
R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId); R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }
@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }

5
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; 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.core.api.R;
import com.cloud.kicc.common.data.entity.KiccUser; import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.exception.SecurityCheckedException; import com.cloud.kicc.common.security.exception.SecurityCheckedException;
@ -18,7 +19,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByCasUserId(String casUserId) { public KiccUser selectByCasUserId(String casUserId) {
R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId); R<KiccUser> result = remoteUserService.selectByCasUserId(casUserId);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }
@ -27,7 +28,7 @@ public class UserProviderTemplateImpl implements UserProviderTemplate<KiccUser>
public KiccUser selectByUserId(String userid) { public KiccUser selectByUserId(String userid) {
R<KiccUser> result = remoteUserService.selectByUserId(userid); R<KiccUser> result = remoteUserService.selectByUserId(userid);
if (result.getCode() != R.SUCCESS) { if (result.getCode() != R.SUCCESS) {
throw new SecurityCheckedException("Controller invoke failed!"); throw new SecurityCheckedException(ObjectUtil.defaultIfBlank(result.getMsg(), "SecurityProviderTemplateImpl invoke failed!"));
} }
return result.getData(); return result.getData();
} }

Loading…
Cancel
Save