From 5275a3302ab8d9fd7927c90f549723edc604d076 Mon Sep 17 00:00:00 2001 From: vzikratyi Date: Fri, 18 Sep 2020 11:19:41 +0300 Subject: [PATCH] Added 'additionalInfo' to ClientRegistration --- .../SearchTextBasedWithAdditionalInfo.java | 1 + .../data/oauth2/ClientRegistrationDto.java | 2 ++ .../data/oauth2/OAuth2ClientRegistration.java | 14 ++++++-- .../OAuth2ClientRegistrationTemplate.java | 32 ++++++------------- .../server/dao/model/ModelConstants.java | 1 + .../sql/OAuth2ClientRegistrationEntity.java | 8 +++++ .../server/dao/oauth2/OAuth2Utils.java | 2 ++ .../BaseOAuth2ConfigTemplateServiceTest.java | 1 + .../dao/service/BaseOAuth2ServiceTest.java | 1 + 9 files changed, 37 insertions(+), 25 deletions(-) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/SearchTextBasedWithAdditionalInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/SearchTextBasedWithAdditionalInfo.java index 8dc9bf6abc..34dc711e0c 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/SearchTextBasedWithAdditionalInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/SearchTextBasedWithAdditionalInfo.java @@ -59,6 +59,7 @@ public abstract class SearchTextBasedWithAdditionalInfo ext } public void setAdditionalInfo(JsonNode addInfo) { + // TODO why set additionalInfoBytes to [110,117,108,108] if JsonNode is null setJson(addInfo, json -> this.additionalInfo = json, bytes -> this.additionalInfoBytes = bytes); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/ClientRegistrationDto.java b/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/ClientRegistrationDto.java index 6f762c0e7a..eef79bda6c 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/ClientRegistrationDto.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/ClientRegistrationDto.java @@ -16,6 +16,7 @@ package org.thingsboard.server.common.data.oauth2; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; import lombok.*; import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationId; import org.thingsboard.server.common.data.id.TenantId; @@ -43,4 +44,5 @@ public class ClientRegistrationDto { private String clientAuthenticationMethod; private String loginButtonLabel; private String loginButtonIcon; + private JsonNode additionalInfo; } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistration.java b/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistration.java index 1e7ff2a1e7..64cfb59511 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistration.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistration.java @@ -16,10 +16,13 @@ package org.thingsboard.server.common.data.oauth2; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.*; -import org.thingsboard.server.common.data.BaseData; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; import org.thingsboard.server.common.data.HasName; import org.thingsboard.server.common.data.HasTenantId; +import org.thingsboard.server.common.data.SearchTextBasedWithAdditionalInfo; import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationId; import org.thingsboard.server.common.data.id.TenantId; @@ -29,7 +32,7 @@ import java.util.List; @Data @ToString(exclude = {"clientSecret"}) @NoArgsConstructor -public class OAuth2ClientRegistration extends BaseData implements HasTenantId, HasName { +public class OAuth2ClientRegistration extends SearchTextBasedWithAdditionalInfo implements HasTenantId, HasName { private TenantId tenantId; private String domainName; @@ -71,4 +74,9 @@ public class OAuth2ClientRegistration extends BaseData implements HasTenantId, HasName { +public class OAuth2ClientRegistrationTemplate extends SearchTextBasedWithAdditionalInfo implements HasTenantId, HasName { private TenantId tenantId; private String providerId; @@ -48,14 +48,6 @@ public class OAuth2ClientRegistrationTemplate extends BaseData additionalInfo, () -> additionalInfoBytes); - } - - public void setAdditionalInfo(JsonNode addInfo) { - SearchTextBasedWithAdditionalInfo.setJson(addInfo, json -> this.additionalInfo = json, bytes -> this.additionalInfoBytes = bytes); } @Override public String getName() { return providerId; } + + @Override + public String getSearchText() { + return getName(); + } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java index 2705be5d47..b9d75ab6d0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java @@ -390,6 +390,7 @@ public class ModelConstants { public static final String OAUTH2_MAPPER_PASSWORD_PROPERTY = "custom_password"; public static final String OAUTH2_MAPPER_SEND_TOKEN_PROPERTY = "custom_send_token"; public static final String OAUTH2_TEMPLATE_COMMENT_PROPERTY = "comment"; + public static final String OAUTH2_ADDITIONAL_INFO_PROPERTY = ADDITIONAL_INFO_PROPERTY; public static final String OAUTH2_TEMPLATE_ADDITIONAL_INFO_PROPERTY = ADDITIONAL_INFO_PROPERTY; public static final String OAUTH2_TEMPLATE_LOGIN_BUTTON_ICON_PROPERTY = OAUTH2_LOGIN_BUTTON_ICON_PROPERTY; public static final String OAUTH2_TEMPLATE_LOGIN_BUTTON_LABEL_PROPERTY = OAUTH2_LOGIN_BUTTON_LABEL_PROPERTY; diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java index 4e99dbbb5f..4f2513f2ce 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java @@ -15,8 +15,10 @@ */ package org.thingsboard.server.dao.model.sql; +import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationId; import org.thingsboard.server.common.data.id.TenantId; @@ -98,6 +100,10 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity