diff --git a/weevent-broker/src/main/java/com/webank/weevent/broker/enums/IsDeleteEnum.java b/weevent-broker/src/main/java/com/webank/weevent/broker/enums/IsDeleteEnum.java index 8b551495f6918c499e1fa23e22d334ddaad79243..2a69b9ea66a81f1672a371296717d0bb09e511d0 100644 --- a/weevent-broker/src/main/java/com/webank/weevent/broker/enums/IsDeleteEnum.java +++ b/weevent-broker/src/main/java/com/webank/weevent/broker/enums/IsDeleteEnum.java @@ -5,7 +5,8 @@ import lombok.Getter; @Getter public enum IsDeleteEnum { - NOT_DELETED(0L, "not deleted"); + NOT_DELETED(0L, "not deleted"), + DELETED(1L, "delete"); private Long code; private String value; diff --git a/weevent-broker/src/main/java/com/webank/weevent/broker/protocol/mqtt/ProtocolProcess.java b/weevent-broker/src/main/java/com/webank/weevent/broker/protocol/mqtt/ProtocolProcess.java index 0c2ad86392674c198bd36c4cd9be22809797d6f7..382f6f1c8c1f95496b593faf24b46308388cf22a 100644 --- a/weevent-broker/src/main/java/com/webank/weevent/broker/protocol/mqtt/ProtocolProcess.java +++ b/weevent-broker/src/main/java/com/webank/weevent/broker/protocol/mqtt/ProtocolProcess.java @@ -8,6 +8,7 @@ import java.util.concurrent.ConcurrentHashMap; import com.webank.weevent.broker.config.WeEventConfig; import com.webank.weevent.broker.entiry.AccountTopicAuthEntity; import com.webank.weevent.broker.entiry.AuthorSessions; +import com.webank.weevent.broker.enums.IsDeleteEnum; import com.webank.weevent.broker.protocol.mqtt.command.Connect; import com.webank.weevent.broker.protocol.mqtt.command.DisConnect; import com.webank.weevent.broker.protocol.mqtt.command.PingReq; @@ -213,7 +214,7 @@ public class ProtocolProcess { String topicName = ((MqttPublishVariableHeader) req.variableHeader()).topicName(); String userName = this.authorSessions.get(sessionId).getUserName(); - List entities = accountTopicAuthRepository.findAllByUserName(userName); + List entities = accountTopicAuthRepository.findAllByUserNameAndDeleteAt(userName, IsDeleteEnum.NOT_DELETED.getCode()); for (AccountTopicAuthEntity entity : entities) { if (entity.getTopicName().equals(topicName) && (entity.getPermission() == SUB_PUB || entity.getPermission() == SUB)) { isAuth = true; @@ -230,7 +231,7 @@ public class ProtocolProcess { for (MqttTopicSubscription topicSubscription : topicSubscriptions) { String topicName = topicSubscription.topicName(); String userName = this.authorSessions.get(sessionId).getUserName(); - AccountTopicAuthEntity entity = accountTopicAuthRepository.findAllByUserNameAndTopicName(userName, topicName); + AccountTopicAuthEntity entity = accountTopicAuthRepository.findAllByUserNameAndTopicNameAndDeleteAt(userName, topicName, IsDeleteEnum.NOT_DELETED.getCode()); if (null != entity && (entity.getPermission() == SUB_PUB || entity.getPermission() == PUB)) { return this.subscribe.process(req, clientId, remoteIp); } diff --git a/weevent-broker/src/main/java/com/webank/weevent/broker/repository/AccountTopicAuthRepository.java b/weevent-broker/src/main/java/com/webank/weevent/broker/repository/AccountTopicAuthRepository.java index 64a3081dcbd85fa89288da2d115958d2731e5c23..163430be6751e02535fba2f7f90209f2b4ad879c 100644 --- a/weevent-broker/src/main/java/com/webank/weevent/broker/repository/AccountTopicAuthRepository.java +++ b/weevent-broker/src/main/java/com/webank/weevent/broker/repository/AccountTopicAuthRepository.java @@ -10,8 +10,8 @@ import com.webank.weevent.broker.entiry.AccountTopicAuthEntity; @Repository public interface AccountTopicAuthRepository extends JpaRepository { - List findAllByUserName(String userName); + List findAllByUserNameAndDeleteAt(String userName, Long deleteAt); - AccountTopicAuthEntity findAllByUserNameAndTopicName(String userName, String topicName); + AccountTopicAuthEntity findAllByUserNameAndTopicNameAndDeleteAt(String userName, String topicName, Long deleteAt); } diff --git a/weevent-broker/src/main/resources/script/broker_h2.sql b/weevent-broker/src/main/resources/script/broker_h2.sql index 03e5e69013cc1254cecf3c5f2002ef7859c9609e..a0f4a823badc79b25d2c0cf71fcf6fe105ad4e24 100644 --- a/weevent-broker/src/main/resources/script/broker_h2.sql +++ b/weevent-broker/src/main/resources/script/broker_h2.sql @@ -16,6 +16,7 @@ create TABLE t_account_topic_auth( user_name VARCHAR (200), topic_name VARCHAR (128), permission INTEGER, + delete_at BIGINT, create_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) diff --git a/weevent-governance/src/main/resources/script/governance_mysql.sql b/weevent-governance/src/main/resources/script/governance_mysql.sql index b24efabf684b1fa224f2b1605e66d1b4c199a83c..4221da89c932c06f1a71a160a4f5289c8d2b8e91 100644 --- a/weevent-governance/src/main/resources/script/governance_mysql.sql +++ b/weevent-governance/src/main/resources/script/governance_mysql.sql @@ -1,3 +1,15 @@ +drop table IF EXISTS t_account; +drop table IF EXISTS t_broker; +drop table IF EXISTS t_permission; +drop table IF EXISTS t_rule_database; +drop table IF EXISTS t_rule_engine; +drop table IF EXISTS t_rule_engine_condition; +drop table IF EXISTS t_topic; +drop table IF EXISTS t_file_transport_channel; +drop table IF EXISTS t_file_transport_status; +drop table IF EXISTS t_topic_historical; +drop table IF EXISTS t_timer_scheduler; + CREATE TABLE t_account( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', `username` VARCHAR(64) NOT NULL COMMENT '用户名',