From 7a5bd096ddd222ce84b5df82cbb078ec40af132a Mon Sep 17 00:00:00 2001 From: shao1121353141 <> Date: Sat, 9 Sep 2023 00:11:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BA=94=E7=94=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractApplicationService.java | 31 ++++++++++++++++--- ...AbstractCertificateApplicationService.java | 8 ++--- .../application/ApplicationService.java | 4 +-- .../form/AbstractFormApplicationService.java | 4 ++- .../FormStandardApplicationServiceImpl.java | 7 +++-- ...tractJwtCertificateApplicationService.java | 4 ++- ...dardCertificateApplicationServiceImpl.java | 5 +-- ...ractOidcCertificateApplicationService.java | 4 ++- ...dardCertificateApplicationServiceImpl.java | 5 +-- .../console/pojo/save/app/AppCreateParam.java | 4 +-- .../pojo/save/app/AppGroupCreateParam.java | 7 ----- .../service/app/impl/AppGroupServiceImpl.java | 8 ----- 12 files changed, 53 insertions(+), 38 deletions(-) diff --git a/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractApplicationService.java b/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractApplicationService.java index afdba1d3..d3fb16df 100644 --- a/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractApplicationService.java +++ b/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractApplicationService.java @@ -17,6 +17,8 @@ */ package cn.topiam.employee.application; +import cn.topiam.employee.common.entity.app.AppGroupAssociationEntity; +import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.util.AlternativeJdkIdGenerator; import org.springframework.util.IdGenerator; @@ -33,6 +35,9 @@ import cn.topiam.employee.common.repository.app.AppRepository; import lombok.extern.slf4j.Slf4j; +import java.util.ArrayList; +import java.util.List; + /** * AbstractApplicationService * @@ -55,7 +60,7 @@ public abstract class AbstractApplicationService implements ApplicationService { } @Override - public AppEntity createApp(String name, String icon, String remark, Long groupId, + public AppEntity createApp(String name, String icon, String remark, Long[] groupId, InitLoginType initLoginType, AuthorizationType authorizationType) { AppEntity appEntity = new AppEntity(); appEntity.setName(name); @@ -70,28 +75,44 @@ public abstract class AbstractApplicationService implements ApplicationService { appEntity.setInitLoginType(initLoginType); appEntity.setAuthorizationType(authorizationType); appEntity.setRemark(remark); - return appRepository.save(appEntity); + appRepository.save(appEntity); + List list = new ArrayList<>(); + for (Long id : groupId) { + AppGroupAssociationEntity appGroupAssociationEntity = new AppGroupAssociationEntity(); + appGroupAssociationEntity.setGroupId(id); + appGroupAssociationEntity.setAppId(appEntity.getId()); + list.add(appGroupAssociationEntity); + } + appGroupAssociationRepository.saveAll(list); + return appEntity; } /** * AppAccountRepository */ - protected final AppAccountRepository appAccountRepository; + protected final AppAccountRepository appAccountRepository; + + /** + * AppGroupAssociationRepository + */ + protected final AppGroupAssociationRepository appGroupAssociationRepository; /** * ApplicationRepository */ - protected final AppRepository appRepository; + protected final AppRepository appRepository; /** * IdGenerator */ - protected final IdGenerator idGenerator; + protected final IdGenerator idGenerator; protected AbstractApplicationService(AppAccountRepository appAccountRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppRepository appRepository) { this.appAccountRepository = appAccountRepository; this.appRepository = appRepository; + this.appGroupAssociationRepository = appGroupAssociationRepository; this.idGenerator = new AlternativeJdkIdGenerator(); } } diff --git a/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractCertificateApplicationService.java b/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractCertificateApplicationService.java index 19883897..6014acdb 100644 --- a/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractCertificateApplicationService.java +++ b/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/AbstractCertificateApplicationService.java @@ -22,6 +22,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Date; +import cn.topiam.employee.common.repository.app.*; import org.bouncycastle.asn1.x500.X500Name; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,10 +33,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import cn.topiam.employee.common.entity.app.AppCertEntity; import cn.topiam.employee.common.enums.app.AppCertUsingType; -import cn.topiam.employee.common.repository.app.AppAccessPolicyRepository; -import cn.topiam.employee.common.repository.app.AppAccountRepository; -import cn.topiam.employee.common.repository.app.AppCertRepository; -import cn.topiam.employee.common.repository.app.AppRepository; import cn.topiam.employee.support.exception.TopIamException; import cn.topiam.employee.support.util.CertUtils; import cn.topiam.employee.support.util.RsaUtils; @@ -128,8 +125,9 @@ public abstract class AbstractCertificateApplicationService extends AbstractAppl protected AbstractCertificateApplicationService(AppCertRepository appCertRepository, AppAccountRepository appAccountRepository, AppAccessPolicyRepository appAccessPolicyRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppRepository appRepository) { - super(appAccountRepository, appRepository); + super(appAccountRepository, appGroupAssociationRepository, appRepository); this.appCertRepository = appCertRepository; this.appAccessPolicyRepository = appAccessPolicyRepository; this.idGenerator = new AlternativeJdkIdGenerator(); diff --git a/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/ApplicationService.java b/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/ApplicationService.java index 649e95c8..e3590be3 100644 --- a/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/ApplicationService.java +++ b/eiam-application/eiam-application-core/src/main/java/cn/topiam/employee/application/ApplicationService.java @@ -96,7 +96,7 @@ public interface ApplicationService { * @return {@link Long} 应用ID */ @Transactional(rollbackFor = Exception.class) - String create(String name, String icon, String remark, Long groupId); + String create(String name, String icon, String remark, Long[] groupId); /** * 删除应用 @@ -142,6 +142,6 @@ public interface ApplicationService { * @param authorizationType {@link AuthorizationType} * @return {@link AppEntity} */ - AppEntity createApp(String name, String icon, String remark, Long groupId, + AppEntity createApp(String name, String icon, String remark, Long[] groupId, InitLoginType initLoginType, AuthorizationType authorizationType); } diff --git a/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/AbstractFormApplicationService.java b/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/AbstractFormApplicationService.java index 560858c4..e36f850b 100644 --- a/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/AbstractFormApplicationService.java +++ b/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/AbstractFormApplicationService.java @@ -26,6 +26,7 @@ import cn.topiam.employee.common.entity.app.AppFormConfigEntity; import cn.topiam.employee.common.entity.app.po.AppFormConfigPO; import cn.topiam.employee.common.repository.app.AppAccountRepository; import cn.topiam.employee.common.repository.app.AppFormConfigRepository; +import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository; import cn.topiam.employee.common.repository.app.AppRepository; /** @@ -83,8 +84,9 @@ public abstract class AbstractFormApplicationService extends AbstractApplication protected AbstractFormApplicationService(AppRepository appRepository, AppAccountRepository appAccountRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppFormConfigRepository appFormConfigRepository) { - super(appAccountRepository, appRepository); + super(appAccountRepository, appGroupAssociationRepository, appRepository); this.appFormConfigRepository = appFormConfigRepository; } } diff --git a/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/FormStandardApplicationServiceImpl.java b/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/FormStandardApplicationServiceImpl.java index 476f4066..d291e4d3 100644 --- a/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/FormStandardApplicationServiceImpl.java +++ b/eiam-application/eiam-application-form/src/main/java/cn/topiam/employee/application/form/FormStandardApplicationServiceImpl.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository; import org.springframework.stereotype.Component; import com.fasterxml.jackson.databind.ObjectMapper; @@ -199,7 +200,7 @@ public class FormStandardApplicationServiceImpl extends AbstractFormApplicationS * @param groupId {@link Long} 分组id */ @Override - public String create(String name, String icon, String remark, Long groupId) { + public String create(String name, String icon, String remark, Long[] groupId) { //1、创建应用 AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.PORTAL_OR_APP, AuthorizationType.AUTHORIZATION); @@ -216,8 +217,10 @@ public class FormStandardApplicationServiceImpl extends AbstractFormApplicationS protected FormStandardApplicationServiceImpl(AppAccountRepository appAccountRepository, AppFormConfigRepository appFormConfigRepository, AppRepository appRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppFormConfigConverter appFormConfigConverter) { - super(appRepository, appAccountRepository, appFormConfigRepository); + super(appRepository, appAccountRepository, appGroupAssociationRepository, + appFormConfigRepository); this.appFormConfigConverter = appFormConfigConverter; } diff --git a/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/AbstractJwtCertificateApplicationService.java b/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/AbstractJwtCertificateApplicationService.java index 39bcd995..79ac825c 100644 --- a/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/AbstractJwtCertificateApplicationService.java +++ b/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/AbstractJwtCertificateApplicationService.java @@ -102,8 +102,10 @@ public abstract class AbstractJwtCertificateApplicationService extends AppCertRepository appCertRepository, AppRepository appRepository, AppAccountRepository appAccountRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppAccessPolicyRepository appAccessPolicyRepository) { - super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository); + super(appCertRepository, appAccountRepository, appAccessPolicyRepository, + appGroupAssociationRepository, appRepository); this.appCertRepository = appCertRepository; this.appRepository = appRepository; this.appJwtConfigRepository = appJwtConfigRepository; diff --git a/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/JwtStandardCertificateApplicationServiceImpl.java b/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/JwtStandardCertificateApplicationServiceImpl.java index 1f128b74..4eb09f70 100644 --- a/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/JwtStandardCertificateApplicationServiceImpl.java +++ b/eiam-application/eiam-application-jwt/src/main/java/cn/topiam/employee/application/jwt/JwtStandardCertificateApplicationServiceImpl.java @@ -204,7 +204,7 @@ public class JwtStandardCertificateApplicationServiceImpl extends * @param groupId {@link Long} 分组id */ @Override - public String create(String name, String icon, String remark, Long groupId) { + public String create(String name, String icon, String remark, Long[] groupId) { //1、创建应用 AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.PORTAL_OR_APP, AuthorizationType.AUTHORIZATION); @@ -229,9 +229,10 @@ public class JwtStandardCertificateApplicationServiceImpl extends AppCertRepository appCertRepository, AppRepository appRepository, AppAccountRepository appAccountRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppAccessPolicyRepository appAccessPolicyRepository) { super(appJwtConfigRepository, appCertRepository, appRepository, appAccountRepository, - appAccessPolicyRepository); + appGroupAssociationRepository, appAccessPolicyRepository); this.appJwtConfigConverter = appJwtConfigConverter; } } diff --git a/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/AbstractOidcCertificateApplicationService.java b/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/AbstractOidcCertificateApplicationService.java index 5cad8d99..99bc497d 100644 --- a/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/AbstractOidcCertificateApplicationService.java +++ b/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/AbstractOidcCertificateApplicationService.java @@ -137,8 +137,10 @@ public abstract class AbstractOidcCertificateApplicationService extends AppAccountRepository appAccountRepository, AppAccessPolicyRepository appAccessPolicyRepository, AppRepository appRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppOidcConfigRepository appOidcConfigRepository) { - super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository); + super(appCertRepository, appAccountRepository, appAccessPolicyRepository, + appGroupAssociationRepository, appRepository); this.appCertRepository = appCertRepository; this.appRepository = appRepository; this.appOidcConfigRepository = appOidcConfigRepository; diff --git a/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/OidcStandardCertificateApplicationServiceImpl.java b/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/OidcStandardCertificateApplicationServiceImpl.java index 1358ae92..681e0082 100644 --- a/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/OidcStandardCertificateApplicationServiceImpl.java +++ b/eiam-application/eiam-application-oidc/src/main/java/cn/topiam/employee/application/oidc/OidcStandardCertificateApplicationServiceImpl.java @@ -78,7 +78,7 @@ public class OidcStandardCertificateApplicationServiceImpl extends * @param groupId {@link Long} 分组id */ @Override - public String create(String name, String icon, String remark, Long groupId) { + public String create(String name, String icon, String remark, Long[] groupId) { //1、创建应用 AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.APP, AuthorizationType.AUTHORIZATION); @@ -275,9 +275,10 @@ public class OidcStandardCertificateApplicationServiceImpl extends AppAccessPolicyRepository appAccessPolicyRepository, AppRepository appRepository, AppOidcConfigRepository appOidcConfigRepository, + AppGroupAssociationRepository appGroupAssociationRepository, AppOidcStandardConfigConverter appOidcStandardConfigConverter) { super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository, - appOidcConfigRepository); + appGroupAssociationRepository, appOidcConfigRepository); this.appOidcStandardConfigConverter = appOidcStandardConfigConverter; } } diff --git a/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppCreateParam.java b/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppCreateParam.java index 92b00b2b..46ef5bb0 100644 --- a/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppCreateParam.java +++ b/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppCreateParam.java @@ -64,6 +64,6 @@ public class AppCreateParam implements Serializable { /** * 应用分组id */ - @Schema(description = "应用分组id") - private Long groupId; + @Schema(description = "应用分组ID") + private Long[] groupId; } diff --git a/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppGroupCreateParam.java b/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppGroupCreateParam.java index 4e94a894..4982a1cd 100644 --- a/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppGroupCreateParam.java +++ b/eiam-console/src/main/java/cn/topiam/employee/console/pojo/save/app/AppGroupCreateParam.java @@ -54,11 +54,4 @@ public class AppGroupCreateParam implements Serializable { */ @Schema(description = "备注") private String remark; - - /** - * 应用分组ID - */ - @Parameter(description = "应用分组ID") - private String[] groupId; - } diff --git a/eiam-console/src/main/java/cn/topiam/employee/console/service/app/impl/AppGroupServiceImpl.java b/eiam-console/src/main/java/cn/topiam/employee/console/service/app/impl/AppGroupServiceImpl.java index d614399e..585e584b 100644 --- a/eiam-console/src/main/java/cn/topiam/employee/console/service/app/impl/AppGroupServiceImpl.java +++ b/eiam-console/src/main/java/cn/topiam/employee/console/service/app/impl/AppGroupServiceImpl.java @@ -94,14 +94,6 @@ public class AppGroupServiceImpl implements AppGroupService { public Boolean createAppGroup(AppGroupCreateParam param) { AppGroupEntity entity = appGroupConverter.appGroupCreateParamConvertToEntity(param); appGroupRepository.save(entity); - List list = new ArrayList<>(); - for (String groupId : param.getGroupId()) { - AppGroupAssociationEntity appGroupAssociationEntity = new AppGroupAssociationEntity(); - appGroupAssociationEntity.setGroupId(Long.valueOf(groupId)); - appGroupAssociationEntity.setAppId(entity.getId()); - list.add(appGroupAssociationEntity); - } - appGroupAssociationRepository.saveAll(list); AuditContext.setTarget( Target.builder().id(String.valueOf(entity.getId())).type(TargetType.APP_GROUP).build()); return true;