From 472267c2daddd8d443a9a8a999795b6fd9070005 Mon Sep 17 00:00:00 2001 From: MaxKey Date: Sun, 4 Sep 2022 07:27:48 +0800 Subject: [PATCH] add provision , remove kafka support --- README.md | 20 +++++----- README_en.md | 20 +++++----- README_zh.md | 20 +++++----- build.gradle | 9 +---- config/build_docker.gradle | 5 --- config/build_jar.gradle | 5 --- config/build_standard.gradle | 5 --- .../persistence/service/AccountsService.java | 20 +++++----- .../service/OrganizationsService.java | 14 +++---- .../persistence/service/UserInfoService.java | 24 +++++------ .../ProvisionAction.java} | 4 +- .../ProvisionMessage.java} | 8 ++-- .../ProvisionService.java} | 34 +++++++--------- .../ProvisionTopic.java} | 4 +- .../thread/ProvisioningThread.java} | 17 +++----- .../resources/application-http.properties | 40 +------------------ .../java/org/maxkey/MaxKeyMgtApplication.java | 1 + .../resources/application-http.properties | 40 +------------------ 18 files changed, 95 insertions(+), 195 deletions(-) rename maxkey-persistence/src/main/java/org/maxkey/{persistence/mq/MqProvisionAction.java => provision/ProvisionAction.java} (93%) rename maxkey-persistence/src/main/java/org/maxkey/{persistence/mq/MqMessage.java => provision/ProvisionMessage.java} (88%) rename maxkey-persistence/src/main/java/org/maxkey/{persistence/mq/MessageQueueService.java => provision/ProvisionService.java} (73%) rename maxkey-persistence/src/main/java/org/maxkey/{persistence/mq/MqProvisionTopic.java => provision/ProvisionTopic.java} (95%) rename maxkey-persistence/src/main/java/org/maxkey/{persistence/mq/thread/KafkaProvisioningThread.java => provision/thread/ProvisioningThread.java} (67%) diff --git a/README.md b/README.md index 1f58a8cb..01c59c1e 100644 --- a/README.md +++ b/README.md @@ -142,11 +142,6 @@ Download the current version from Baidu Pan,{ @Autowired - MessageQueueService mqPersistService; + ProvisionService mqPersistService; @Autowired UserInfoService userInfoService; @@ -79,9 +79,9 @@ public class AccountsService extends JpaBaseService{ cast.setOrgId(loadUserInfo.getDepartmentId()); account.setOrgCast(organizationsCastService.query(cast)); mqPersistService.send( - MqProvisionTopic.ACCOUNT_TOPIC, + ProvisionTopic.ACCOUNT_TOPIC, account, - MqProvisionAction.CREATE_ACTION); + ProvisionAction.CREATE_ACTION); } return true; @@ -99,9 +99,9 @@ public class AccountsService extends JpaBaseService{ cast.setOrgId(loadUserInfo.getDepartmentId()); account.setOrgCast(organizationsCastService.query(cast)); mqPersistService.send( - MqProvisionTopic.ACCOUNT_TOPIC, + ProvisionTopic.ACCOUNT_TOPIC, account, - MqProvisionAction.UPDATE_ACTION); + ProvisionAction.UPDATE_ACTION); } return true; @@ -120,9 +120,9 @@ public class AccountsService extends JpaBaseService{ loadUserInfo = userInfoService.findUserRelated(account.getUserId()); account.setUserInfo(loadUserInfo); mqPersistService.send( - MqProvisionTopic.ACCOUNT_TOPIC, + ProvisionTopic.ACCOUNT_TOPIC, account, - MqProvisionAction.DELETE_ACTION); + ProvisionAction.DELETE_ACTION); } return true; diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/OrganizationsService.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/OrganizationsService.java index 7f69a322..ba72f7d4 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/OrganizationsService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/OrganizationsService.java @@ -24,9 +24,9 @@ import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.maxkey.entity.Organizations; import org.maxkey.persistence.mapper.OrganizationsMapper; -import org.maxkey.persistence.mq.MqProvisionAction; -import org.maxkey.persistence.mq.MqProvisionTopic; -import org.maxkey.persistence.mq.MessageQueueService; +import org.maxkey.provision.ProvisionService; +import org.maxkey.provision.ProvisionAction; +import org.maxkey.provision.ProvisionTopic; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @@ -35,7 +35,7 @@ import org.springframework.stereotype.Repository; public class OrganizationsService extends JpaBaseService{ @Autowired - MessageQueueService messageQueueService; + ProvisionService messageQueueService; public OrganizationsService() { super(OrganizationsMapper.class); @@ -52,7 +52,7 @@ public class OrganizationsService extends JpaBaseService{ public boolean insert(Organizations organization) { if(super.insert(organization)){ messageQueueService.send( - MqProvisionTopic.ORG_TOPIC, organization, MqProvisionAction.CREATE_ACTION); + ProvisionTopic.ORG_TOPIC, organization, ProvisionAction.CREATE_ACTION); return true; } return false; @@ -61,7 +61,7 @@ public class OrganizationsService extends JpaBaseService{ public boolean update(Organizations organization) { if(super.update(organization)){ messageQueueService.send( - MqProvisionTopic.ORG_TOPIC, organization, MqProvisionAction.UPDATE_ACTION); + ProvisionTopic.ORG_TOPIC, organization, ProvisionAction.UPDATE_ACTION); return true; } return false; @@ -85,7 +85,7 @@ public class OrganizationsService extends JpaBaseService{ public boolean delete(Organizations organization) { if(super.delete(organization)){ messageQueueService.send( - MqProvisionTopic.ORG_TOPIC, organization, MqProvisionAction.DELETE_ACTION); + ProvisionTopic.ORG_TOPIC, organization, ProvisionAction.DELETE_ACTION); return true; } return false; diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java index c4de9f63..dd5e09d7 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/persistence/service/UserInfoService.java @@ -27,10 +27,10 @@ import org.maxkey.entity.Accounts; import org.maxkey.entity.ChangePassword; import org.maxkey.entity.UserInfo; import org.maxkey.persistence.mapper.UserInfoMapper; -import org.maxkey.persistence.mq.MqProvisionAction; -import org.maxkey.persistence.mq.MqProvisionTopic; -import org.maxkey.persistence.mq.MessageQueueService; import org.maxkey.persistence.repository.PasswordPolicyValidator; +import org.maxkey.provision.ProvisionService; +import org.maxkey.provision.ProvisionAction; +import org.maxkey.provision.ProvisionTopic; import org.maxkey.util.DateUtils; import org.maxkey.util.StringUtils; import org.maxkey.web.WebContext; @@ -56,7 +56,7 @@ public class UserInfoService extends JpaBaseService { PasswordPolicyValidator passwordPolicyValidator; @Autowired - MessageQueueService messageQueueService; + ProvisionService messageQueueService; AccountsService accountsService; @@ -78,9 +78,9 @@ public class UserInfoService extends JpaBaseService { if(messageQueueService.getApplicationConfig().isMessageQueueSupport()) { UserInfo loadUserInfo = findUserRelated(userInfo.getId()); messageQueueService.send( - MqProvisionTopic.USERINFO_TOPIC, + ProvisionTopic.USERINFO_TOPIC, loadUserInfo, - MqProvisionAction.CREATE_ACTION); + ProvisionAction.CREATE_ACTION); } return true; @@ -96,9 +96,9 @@ public class UserInfoService extends JpaBaseService { UserInfo loadUserInfo = findUserRelated(userInfo.getId()); accountUpdate(loadUserInfo); messageQueueService.send( - MqProvisionTopic.USERINFO_TOPIC, + ProvisionTopic.USERINFO_TOPIC, loadUserInfo, - MqProvisionAction.UPDATE_ACTION); + ProvisionAction.UPDATE_ACTION); } if(userInfo.getPassword() != null) { changePasswordProvisioning(changePassword); @@ -116,9 +116,9 @@ public class UserInfoService extends JpaBaseService { if( super.delete(userInfo)){ messageQueueService.send( - MqProvisionTopic.USERINFO_TOPIC, + ProvisionTopic.USERINFO_TOPIC, loadUserInfo, - MqProvisionAction.DELETE_ACTION); + ProvisionAction.DELETE_ACTION); accountUpdate(loadUserInfo); return true; } @@ -314,9 +314,9 @@ public class UserInfoService extends JpaBaseService { UserInfo loadUserInfo = findByUsername(changePassworded.getUsername()); ChangePassword changePassword = new ChangePassword(loadUserInfo); messageQueueService.send( - MqProvisionTopic.PASSWORD_TOPIC, + ProvisionTopic.PASSWORD_TOPIC, changePassword, - MqProvisionAction.PASSWORD_ACTION); + ProvisionAction.PASSWORD_ACTION); } } diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqProvisionAction.java b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionAction.java similarity index 93% rename from maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqProvisionAction.java rename to maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionAction.java index 1fae05c7..f0af926d 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqProvisionAction.java +++ b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionAction.java @@ -15,9 +15,9 @@ */ -package org.maxkey.persistence.mq; +package org.maxkey.provision; -public class MqProvisionAction { +public class ProvisionAction { public static String CREATE_ACTION = "CREATE_ACTION"; diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqMessage.java b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionMessage.java similarity index 88% rename from maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqMessage.java rename to maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionMessage.java index b598e3d3..1865fb3d 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqMessage.java +++ b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionMessage.java @@ -15,9 +15,9 @@ */ -package org.maxkey.persistence.mq; +package org.maxkey.provision; -public class MqMessage { +public class ProvisionMessage { String id; String topic; @@ -65,10 +65,10 @@ public class MqMessage { this.content = content; } - public MqMessage() { + public ProvisionMessage() { } - public MqMessage(String id,String topic, String actionType, String sendTime, Object content) { + public ProvisionMessage(String id,String topic, String actionType, String sendTime, Object content) { super(); this.id = id; this.topic = topic; diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MessageQueueService.java b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionService.java similarity index 73% rename from maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MessageQueueService.java rename to maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionService.java index 2ea4f677..7fe90bb5 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MessageQueueService.java +++ b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionService.java @@ -15,53 +15,47 @@ */ -package org.maxkey.persistence.mq; +package org.maxkey.provision; import java.util.UUID; import org.maxkey.configuration.ApplicationConfig; -import org.maxkey.persistence.mq.thread.KafkaProvisioningThread; +import org.maxkey.provision.thread.ProvisioningThread; import org.maxkey.util.DateUtils; import org.maxkey.util.JsonUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.kafka.core.KafkaTemplate; import org.springframework.stereotype.Component; @Component -public class MessageQueueService { - private static final Logger _logger = LoggerFactory.getLogger(MessageQueueService.class); +public class ProvisionService { + private static final Logger _logger = LoggerFactory.getLogger(ProvisionService.class); @Autowired protected ApplicationConfig applicationConfig; - @Autowired - protected KafkaTemplate kafkaTemplate; public void setApplicationConfig(ApplicationConfig applicationConfig) { this.applicationConfig = applicationConfig; } - public void setKafkaTemplate(KafkaTemplate kafkaTemplate) { - this.kafkaTemplate = kafkaTemplate; - } - + public ApplicationConfig getApplicationConfig() { return applicationConfig; } /** - * send msg to kafka - * @param topic kafka TOPIC + * send msg to jdbc + * @param topic TOPIC * @param content msg Object * @param actionType CREATE UPDATE DELETE */ public void send(String topic,Object content,String actionType) { - //maxkey.server.message.queue , if not none , Kafka + //maxkey.server.message.queue , if not none if(applicationConfig.isMessageQueueSupport()) { - MqMessage message = - new MqMessage( + ProvisionMessage message = + new ProvisionMessage( UUID.randomUUID().toString(), //message id as uuid topic, //TOPIC actionType, //action of content @@ -69,11 +63,11 @@ public class MessageQueueService { content //content Object to json message content ); String msg = JsonUtils.gson2Json(message); - //sand msg to MQ topic + //sand msg to provision topic Thread thread = null; - if(applicationConfig.getMessageQueue().equalsIgnoreCase("Kafka")) { - _logger.trace("Kafka message..."); - thread = new KafkaProvisioningThread(kafkaTemplate,topic,msg); + if(applicationConfig.getMessageQueue().equalsIgnoreCase("provision")) { + _logger.trace("message..."); + thread = new ProvisioningThread(topic,msg); }else{ _logger.trace("no send message..."); } diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqProvisionTopic.java b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionTopic.java similarity index 95% rename from maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqProvisionTopic.java rename to maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionTopic.java index 504eac53..c9d7840d 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/MqProvisionTopic.java +++ b/maxkey-persistence/src/main/java/org/maxkey/provision/ProvisionTopic.java @@ -15,9 +15,9 @@ */ -package org.maxkey.persistence.mq; +package org.maxkey.provision; -public class MqProvisionTopic { +public class ProvisionTopic { public final static String USERINFO_TOPIC = "MXK_IDENTITY_USERINFO_TOPIC"; diff --git a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/thread/KafkaProvisioningThread.java b/maxkey-persistence/src/main/java/org/maxkey/provision/thread/ProvisioningThread.java similarity index 67% rename from maxkey-persistence/src/main/java/org/maxkey/persistence/mq/thread/KafkaProvisioningThread.java rename to maxkey-persistence/src/main/java/org/maxkey/provision/thread/ProvisioningThread.java index d3b6cab8..18a0f4c6 100644 --- a/maxkey-persistence/src/main/java/org/maxkey/persistence/mq/thread/KafkaProvisioningThread.java +++ b/maxkey-persistence/src/main/java/org/maxkey/provision/thread/ProvisioningThread.java @@ -14,31 +14,26 @@ * limitations under the License. */ -package org.maxkey.persistence.mq.thread; +package org.maxkey.provision.thread; import org.maxkey.pretty.PrettyFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.kafka.core.KafkaTemplate; /** - * Kafka Provisioning Thread for send message + * Provisioning Thread for send message * */ -public class KafkaProvisioningThread extends Thread{ - private static final Logger _logger = LoggerFactory.getLogger(KafkaProvisioningThread.class); - - KafkaTemplate kafkaTemplate; +public class ProvisioningThread extends Thread{ + private static final Logger _logger = LoggerFactory.getLogger(ProvisioningThread.class); String topic ; String msg; - public KafkaProvisioningThread( - KafkaTemplate kafkaTemplate, + public ProvisioningThread( String topic, String msg) { - this.kafkaTemplate = kafkaTemplate; this.topic = topic; this.msg = msg; } @@ -46,7 +41,7 @@ public class KafkaProvisioningThread extends Thread{ @Override public void run() { _logger.debug("send message \n{}" , PrettyFactory.getJsonPretty().format(msg)); - kafkaTemplate.send(topic, msg); + //kafkaTemplate.send(topic, msg); _logger.debug("send to Message Queue finished ."); } } diff --git a/maxkey-webs/maxkey-web-maxkey/src/main/resources/application-http.properties b/maxkey-webs/maxkey-web-maxkey/src/main/resources/application-http.properties index 89cb3806..8a45c5d5 100644 --- a/maxkey-webs/maxkey-web-maxkey/src/main/resources/application-http.properties +++ b/maxkey-webs/maxkey-web-maxkey/src/main/resources/application-http.properties @@ -44,7 +44,7 @@ maxkey.server.authz.uri =${maxkey.server.name}:${server. maxkey.server.frontend.uri =/maxkey #InMemory 0 , Redis 2 maxkey.server.persistence =${SERVER_PERSISTENCE:0} -#identity none, Kafka ,RocketMQ +#identity none, provision maxkey.server.message.queue =${SERVER_MESSAGE_QUEUE:none} #issuer name maxkey.app.issuer =CN=ConSec,CN=COM,CN=SH @@ -150,44 +150,6 @@ spring.mail.properties.mailotp.message.template ={0} You Token is {1} , it valid spring.mail.properties.mailotp.message.type =html spring.mail.properties.mailotp.message.validity =300 -############################################################################ -#Spring Session for Cluster configuration # -############################################################################ -# Session store type. -spring.session.store-type =none -#spring.session.store-type=redis -# Session timeout. If a duration suffix is not specified, seconds is used. -#server.servlet.session.timeout=1800 -# Sessions flush mode. -#spring.session.redis.flush-mode=on_save -# Namespace for keys used to store sessions. -#spring.session.redis.namespace=spring:session - -############################################################################ -#Kafka for connectors configuration # -############################################################################ -spring.kafka.bootstrap-servers =${KAFKA_SERVERS:localhost:9092} -# retries -spring.kafka.producer.retries =0 -# acks -spring.kafka.producer.acks =1 -# batch-size -spring.kafka.producer.batch-size =16384 -# linger.ms -spring.kafka.producer.properties.linger.ms =0 -# buffer-memory -spring.kafka.producer.buffer-memory =33554432 -# serializer -spring.kafka.producer.key-serializer =org.apache.kafka.common.serialization.StringSerializer -spring.kafka.producer.value-serializer =org.apache.kafka.common.serialization.StringSerializer -# partitioner -#spring.kafka.producer.properties.partitioner.class=com.felix.kafka.producer.CustomizePartitioner -############################################################################ -#RocketMQ for connectors configuration # -############################################################################ -rocketmq.name-server =${ROCKETMQ_SERVERS:localhost:9876} -rocketmq.producer.enable =true -rocketmq.producer.group =maxkey_identity ############################################################################ #Time-based One-Time Password configuration # ############################################################################ diff --git a/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java index 1978d4de..7d60d63d 100644 --- a/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java +++ b/maxkey-webs/maxkey-web-mgt/src/main/java/org/maxkey/MaxKeyMgtApplication.java @@ -43,6 +43,7 @@ import org.springframework.context.annotation.ComponentScan; "org.maxkey.identity.rest", "org.maxkey.identity.scim.controller", "org.maxkey.persistence", + "org.maxkey.provision", "org.maxkey.synchronizer", "org.maxkey.web", "org.maxkey.web.access.contorller", diff --git a/maxkey-webs/maxkey-web-mgt/src/main/resources/application-http.properties b/maxkey-webs/maxkey-web-mgt/src/main/resources/application-http.properties index 57bc3233..d0fb6866 100644 --- a/maxkey-webs/maxkey-web-mgt/src/main/resources/application-http.properties +++ b/maxkey-webs/maxkey-web-mgt/src/main/resources/application-http.properties @@ -33,7 +33,7 @@ maxkey.server.mgt.uri =${maxkey.server.uri} maxkey.server.authz.uri =https://${maxkey.server.domain}/maxkey #InMemory 0 , Redis 2 maxkey.server.persistence =0 -#identity none, Kafka ,RocketMQ +#identity none, provision maxkey.server.message.queue =${SERVER_MESSAGE_QUEUE:none} maxkey.session.timeout =${SERVER_SESSION_TIMEOUT:1800} @@ -124,44 +124,6 @@ spring.mail.properties.mailotp.message.template ={0} You Token is {1} , it valid spring.mail.properties.mailotp.message.type =html spring.mail.properties.mailotp.message.validity =300 -############################################################################ -#Spring Session for Cluster configuration # -############################################################################ -# Session store type. -spring.session.store-type =none -#spring.session.store-type=redis -# Session timeout. If a duration suffix is not specified, seconds is used. -#server.servlet.session.timeout=1800 -# Sessions flush mode. -#spring.session.redis.flush-mode=on_save -# Namespace for keys used to store sessions. -#spring.session.redis.namespace=spring:session - -############################################################################ -#Kafka for connectors configuration # -############################################################################ -spring.kafka.bootstrap-servers =${KAFKA_SERVERS:localhost:9092} -# retries -spring.kafka.producer.retries =0 -# acks -spring.kafka.producer.acks =1 -# batch-size -spring.kafka.producer.batch-size =16384 -# linger.ms -spring.kafka.producer.properties.linger.ms =0 -# buffer-memory -spring.kafka.producer.buffer-memory =33554432 -# serializer -spring.kafka.producer.key-serializer =org.apache.kafka.common.serialization.StringSerializer -spring.kafka.producer.value-serializer =org.apache.kafka.common.serialization.StringSerializer -# partitioner -#spring.kafka.producer.properties.partitioner.class=com.felix.kafka.producer.CustomizePartitioner -############################################################################ -#RocketMQ for connectors configuration # -############################################################################ -rocketmq.name-server =${ROCKETMQ_SERVERS:localhost:9876} -rocketmq.producer.enable =true -rocketmq.producer.group =maxkey_identity ############################################################################ #Time-based One-Time Password configuration # ############################################################################ -- GitLab