Merge pull request #13186 from dashevchenko/edqs-fixes

Added validation for entity name filter
This commit is contained in:
Viacheslav Klimov 2025-04-11 17:32:20 +03:00 committed by GitHub
commit 8966ec8b01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -42,6 +42,7 @@ import org.thingsboard.server.common.data.query.EntityDataQuery;
import org.thingsboard.server.common.data.query.EntityFilterType;
import org.thingsboard.server.common.data.query.EntityKey;
import org.thingsboard.server.common.data.query.EntityListFilter;
import org.thingsboard.server.common.data.query.EntityNameFilter;
import org.thingsboard.server.common.data.query.EntityTypeFilter;
import org.thingsboard.server.common.data.query.KeyFilter;
import org.thingsboard.server.common.data.query.RelationsQueryFilter;
@ -60,6 +61,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static org.thingsboard.server.common.data.id.EntityId.NULL_UUID;
import static org.thingsboard.server.common.data.query.EntityFilterType.ENTITY_NAME;
import static org.thingsboard.server.common.data.query.EntityFilterType.ENTITY_TYPE;
import static org.thingsboard.server.dao.service.Validator.validateEntityDataPageLink;
import static org.thingsboard.server.dao.service.Validator.validateId;
@ -249,6 +251,8 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
validateRelationQuery((RelationsQueryFilter) query.getEntityFilter());
} else if (query.getEntityFilter().getType().equals(ENTITY_TYPE)) {
validateEntityTypeQuery((EntityTypeFilter) query.getEntityFilter());
} else if (query.getEntityFilter().getType().equals(ENTITY_NAME)) {
validateEntityNameQuery((EntityNameFilter) query.getEntityFilter());
}
}
@ -263,6 +267,12 @@ public class BaseEntityService extends AbstractEntityService implements EntitySe
}
}
private static void validateEntityNameQuery(EntityNameFilter filter) {
if (filter.getEntityType() == null) {
throw new IncorrectParameterException("Entity type is required");
}
}
private static void validateRelationQuery(RelationsQueryFilter queryFilter) {
if (queryFilter.isMultiRoot() && queryFilter.getMultiRootEntitiesType() == null) {
throw new IncorrectParameterException("Multi-root relation query filter should contain 'multiRootEntitiesType'");