diff --git a/README.md b/README.md index 1f58a8cb03acb8c862618a3ea721fbf127a4e092..01c59c1e5b0afe18c5b118e34b9744300fd90ddd 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 7f69a322888b807e265f0c124a9a5f3afd06cb87..ba72f7d42830060b7afc7073421bea361f541e7f 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 c4de9f6394c2ae363237bb21ab45393adacf127f..dd5e09d7889f7e837312000986c60b1ec40422e3 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 1fae05c7b4d4a121c199e43a0b107343c64a3c1e..f0af926d79e90c212bb28d080537fa674a886247 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 b598e3d3e776f20f42ea511dbe733b6136fc48c6..1865fb3da3adea8775f2322528d900de6736cadb 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 2ea4f677481e7661260aa8ea9fadfbb83be2057e..7fe90bb5419c30215e190d0514ca3db4fca4a6bf 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 504eac531f7b15771c40584835bd6f01353911ee..c9d7840da712733dd627e18ae4c9f8e5acb61dcf 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 d3b6cab84f6bcf3b251378703eb2faa35e526631..18a0f4c69730e528e0fdeab38c304f10cc44a348 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 89cb3806cf8c22e0b16f292a5a3e9883dab369ec..8a45c5d5a9c75b48ad3611031ec1cefce6abc1d0 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 1978d4de5300c089362330870bac47db3958beba..7d60d63db319b2e4923a4f5c7ad3a9c11bf61a8e 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 57bc3233cbb07fcf492209887842d97d417cac97..d0fb68660d1a34a877786fbf07fa803280f22ce5 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 # ############################################################################