From 0984a754b6f164a35e362816aae0336fd56f9c68 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Tue, 9 Jul 2024 17:59:24 +0300 Subject: [PATCH 1/2] Fix oauth2 edge validator --- .../server/service/edge/EdgeEventSourcingListener.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/EdgeEventSourcingListener.java b/application/src/main/java/org/thingsboard/server/service/edge/EdgeEventSourcingListener.java index 651339e3a4..11974d2ebc 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/EdgeEventSourcingListener.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/EdgeEventSourcingListener.java @@ -204,6 +204,9 @@ public class EdgeEventSourcingListener { return false; } } + if (entity instanceof OAuth2Info oAuth2Info) { + return oAuth2Info.isEdgeEnabled(); + } // Default: If the entity doesn't match any of the conditions, consider it as valid. return true; } From c3cd5e276080c3d6ab170e8c89332e366ef5f548 Mon Sep 17 00:00:00 2001 From: Andrii Landiak Date: Tue, 9 Jul 2024 18:05:57 +0300 Subject: [PATCH 2/2] Improve logic: add check for oauth2 event to edge on convertToDownlink --- .../service/edge/rpc/fetch/OAuth2EdgeEventFetcher.java | 5 ++++- .../edge/rpc/processor/oauth2/OAuth2EdgeProcessor.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/OAuth2EdgeEventFetcher.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/OAuth2EdgeEventFetcher.java index 4412f91183..982c1a8eaf 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/OAuth2EdgeEventFetcher.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/OAuth2EdgeEventFetcher.java @@ -45,8 +45,11 @@ public class OAuth2EdgeEventFetcher implements EdgeEventFetcher { @Override public PageData fetchEdgeEvents(TenantId tenantId, Edge edge, PageLink pageLink) { - List result = new ArrayList<>(); OAuth2Info oAuth2Info = oAuth2Service.findOAuth2Info(); + if (!oAuth2Info.isEdgeEnabled()) { + return new PageData<>(); + } + List result = new ArrayList<>(); result.add(EdgeUtils.constructEdgeEvent(tenantId, edge.getId(), EdgeEventType.OAUTH2, EdgeEventActionType.ADDED, null, JacksonUtil.valueToTree(oAuth2Info))); // returns PageData object to be in sync with other fetchers diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/oauth2/OAuth2EdgeProcessor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/oauth2/OAuth2EdgeProcessor.java index ce0600b491..adfb6f7d9f 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/oauth2/OAuth2EdgeProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/processor/oauth2/OAuth2EdgeProcessor.java @@ -40,7 +40,7 @@ public class OAuth2EdgeProcessor extends BaseEdgeProcessor { public DownlinkMsg convertOAuth2EventToDownlink(EdgeEvent edgeEvent) { DownlinkMsg downlinkMsg = null; OAuth2Info oAuth2Info = JacksonUtil.convertValue(edgeEvent.getBody(), OAuth2Info.class); - if (oAuth2Info != null) { + if (oAuth2Info != null && oAuth2Info.isEdgeEnabled()) { OAuth2UpdateMsg oAuth2UpdateMsg = oAuth2MsgConstructor.constructOAuth2UpdateMsg(oAuth2Info); downlinkMsg = DownlinkMsg.newBuilder() .setDownlinkMsgId(EdgeUtils.nextPositiveInt())