Browse Source

Added 'additionalInfo' to ClientRegistration

pull/3557/head
vzikratyi 6 years ago
parent
commit
5275a3302a
  1. 1
      common/data/src/main/java/org/thingsboard/server/common/data/SearchTextBasedWithAdditionalInfo.java
  2. 2
      common/data/src/main/java/org/thingsboard/server/common/data/oauth2/ClientRegistrationDto.java
  3. 14
      common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistration.java
  4. 32
      common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistrationTemplate.java
  5. 1
      dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
  6. 8
      dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java
  7. 2
      dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2Utils.java
  8. 1
      dao/src/test/java/org/thingsboard/server/dao/service/BaseOAuth2ConfigTemplateServiceTest.java
  9. 1
      dao/src/test/java/org/thingsboard/server/dao/service/BaseOAuth2ServiceTest.java

1
common/data/src/main/java/org/thingsboard/server/common/data/SearchTextBasedWithAdditionalInfo.java

@ -59,6 +59,7 @@ public abstract class SearchTextBasedWithAdditionalInfo<I extends UUIDBased> 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);
}

2
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;
}

14
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<OAuth2ClientRegistrationId> implements HasTenantId, HasName {
public class OAuth2ClientRegistration extends SearchTextBasedWithAdditionalInfo<OAuth2ClientRegistrationId> implements HasTenantId, HasName {
private TenantId tenantId;
private String domainName;
@ -71,4 +74,9 @@ public class OAuth2ClientRegistration extends BaseData<OAuth2ClientRegistrationI
public String getName() {
return loginButtonLabel;
}
@Override
public String getSearchText() {
return getName();
}
}

32
common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2ClientRegistrationTemplate.java

@ -15,10 +15,10 @@
*/
package org.thingsboard.server.common.data.oauth2;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.JsonNode;
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;
@ -31,7 +31,7 @@ import java.util.List;
@Data
@ToString
@NoArgsConstructor
public class OAuth2ClientRegistrationTemplate extends BaseData<OAuth2ClientRegistrationTemplateId> implements HasTenantId, HasName {
public class OAuth2ClientRegistrationTemplate extends SearchTextBasedWithAdditionalInfo<OAuth2ClientRegistrationTemplateId> implements HasTenantId, HasName {
private TenantId tenantId;
private String providerId;
@ -48,14 +48,6 @@ public class OAuth2ClientRegistrationTemplate extends BaseData<OAuth2ClientRegis
private String loginButtonLabel;
private String helpLink;
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private transient JsonNode additionalInfo;
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
@JsonIgnore
private byte[] additionalInfoBytes;
public OAuth2ClientRegistrationTemplate(OAuth2ClientRegistrationTemplate clientRegistrationTemplate) {
super(clientRegistrationTemplate);
this.tenantId = clientRegistrationTemplate.tenantId;
@ -72,19 +64,15 @@ public class OAuth2ClientRegistrationTemplate extends BaseData<OAuth2ClientRegis
this.loginButtonIcon = clientRegistrationTemplate.loginButtonIcon;
this.loginButtonLabel = clientRegistrationTemplate.loginButtonLabel;
this.helpLink = clientRegistrationTemplate.helpLink;
this.additionalInfo = clientRegistrationTemplate.additionalInfo;
}
public JsonNode getAdditionalInfo() {
return SearchTextBasedWithAdditionalInfo.getJson(() -> 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();
}
}

1
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;

8
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<OAuth2ClientRe
@Column(name = ModelConstants.OAUTH2_MAPPER_SEND_TOKEN_PROPERTY)
private Boolean sendToken;
@Type(type = "json")
@Column(name = ModelConstants.OAUTH2_ADDITIONAL_INFO_PROPERTY)
private JsonNode additionalInfo;
public OAuth2ClientRegistrationEntity() {
super();
}
@ -123,6 +129,7 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRe
this.clientAuthenticationMethod = clientRegistration.getClientAuthenticationMethod();
this.loginButtonLabel = clientRegistration.getLoginButtonLabel();
this.loginButtonIcon = clientRegistration.getLoginButtonIcon();
this.additionalInfo = clientRegistration.getAdditionalInfo();
OAuth2MapperConfig mapperConfig = clientRegistration.getMapperConfig();
if (mapperConfig != null) {
this.allowUserCreation = mapperConfig.isAllowUserCreation();
@ -156,6 +163,7 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRe
clientRegistration.setTenantId(new TenantId(tenantId));
clientRegistration.setCreatedTime(createdTime);
clientRegistration.setDomainName(domainName);
clientRegistration.setAdditionalInfo(additionalInfo);
clientRegistration.setMapperConfig(
OAuth2MapperConfig.builder()
.allowUserCreation(allowUserCreation)

2
dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2Utils.java

@ -76,6 +76,7 @@ public class OAuth2Utils {
.clientAuthenticationMethod(oAuth2ClientRegistration.getClientAuthenticationMethod())
.loginButtonLabel(oAuth2ClientRegistration.getLoginButtonLabel())
.loginButtonIcon(oAuth2ClientRegistration.getLoginButtonIcon())
.additionalInfo(oAuth2ClientRegistration.getAdditionalInfo())
.build();
}
@ -99,6 +100,7 @@ public class OAuth2Utils {
clientRegistration.setClientAuthenticationMethod(clientRegistrationDto.getClientAuthenticationMethod());
clientRegistration.setLoginButtonLabel(clientRegistrationDto.getLoginButtonLabel());
clientRegistration.setLoginButtonIcon(clientRegistrationDto.getLoginButtonIcon());
clientRegistration.setAdditionalInfo(clientRegistrationDto.getAdditionalInfo());
return clientRegistration;
}
}

1
dao/src/test/java/org/thingsboard/server/dao/service/BaseOAuth2ConfigTemplateServiceTest.java

@ -107,6 +107,7 @@ public class BaseOAuth2ConfigTemplateServiceTest extends AbstractServiceTest {
OAuth2ClientRegistrationTemplate clientRegistrationTemplate = new OAuth2ClientRegistrationTemplate();
clientRegistrationTemplate.setProviderId(providerId);
clientRegistrationTemplate.setTenantId(tenantId);
clientRegistrationTemplate.setAdditionalInfo(mapper.createObjectNode().put(UUID.randomUUID().toString(), UUID.randomUUID().toString()));
clientRegistrationTemplate.setBasic(
OAuth2BasicMapperConfig.builder()
.firstNameAttributeKey("firstName")

1
dao/src/test/java/org/thingsboard/server/dao/service/BaseOAuth2ServiceTest.java

@ -300,6 +300,7 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest {
clientRegistration.setClientAuthenticationMethod("clientAuthenticationMethod");
clientRegistration.setLoginButtonLabel("loginButtonLabel");
clientRegistration.setLoginButtonIcon("loginButtonIcon");
clientRegistration.setAdditionalInfo(mapper.createObjectNode().put(UUID.randomUUID().toString(), UUID.randomUUID().toString()));
return clientRegistration;
}
}

Loading…
Cancel
Save