diff --git a/application/src/main/data/upgrade/3.1.0/schema_update.sql b/application/src/main/data/upgrade/3.1.0/schema_update.sql index 7ef91b2bec..61ba70894c 100644 --- a/application/src/main/data/upgrade/3.1.0/schema_update.sql +++ b/application/src/main/data/upgrade/3.1.0/schema_update.sql @@ -17,29 +17,22 @@ DROP TABLE IF EXISTS oauth2_client_registration; CREATE TABLE IF NOT EXISTS oauth2_client_registration ( - id varchar(31) NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, - registration_id varchar(255) UNIQUE, - mapper_config_id varchar(31), - client_id varchar(255), - client_secret varchar(255), - authorization_uri varchar(255), - token_uri varchar(255), - redirect_uri_template varchar(255), - scope varchar(255), - authorization_grant_type varchar(255), - user_info_uri varchar(255), - user_name_attribute varchar(255), - jwk_set_uri varchar(255), - client_authentication_method varchar(255), - client_name varchar(255), - login_button_label varchar(255), - login_button_icon varchar(255) -); - -DROP TABLE IF EXISTS oauth2_mapper_config; - -CREATE TABLE IF NOT EXISTS oauth2_mapper_config ( - id varchar(31) NOT NULL CONSTRAINT oauth2_mapper_config_pkey PRIMARY KEY, + id varchar(31) NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, + registration_id varchar(255) UNIQUE, + client_id varchar(255), + client_secret varchar(255), + authorization_uri varchar(255), + token_uri varchar(255), + redirect_uri_template varchar(255), + scope varchar(255), + authorization_grant_type varchar(255), + user_info_uri varchar(255), + user_name_attribute varchar(255), + jwk_set_uri varchar(255), + client_authentication_method varchar(255), + client_name varchar(255), + login_button_label varchar(255), + login_button_icon varchar(255), allow_user_creation boolean, activate_user boolean, type varchar(31), 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 d5bd3b076e..fc855e24f1 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 @@ -10,7 +10,7 @@ import org.thingsboard.server.common.data.id.OAuth2IntegrationId; public class OAuth2ClientRegistration extends BaseData { private String registrationId; - private OAuth2IntegrationId mapperConfigId; + private OAuth2MapperConfig mapperConfig; private String clientId; private String clientSecret; private String authorizationUri; @@ -35,7 +35,7 @@ public class OAuth2ClientRegistration extends BaseData { } @Builder(toBuilder = true) - public OAuth2ClientRegistration(OAuth2IntegrationId id, String registrationId, String clientId, String clientSecret, String authorizationUri, String tokenUri, String redirectUriTemplate, String scope, String authorizationGrantType, String userInfoUri, String userNameAttribute, String jwkSetUri, String clientAuthenticationMethod, String clientName, String loginButtonLabel, String loginButtonIcon, OAuth2IntegrationId mapperConfigId) { + public OAuth2ClientRegistration(OAuth2IntegrationId id, String registrationId, String clientId, String clientSecret, String authorizationUri, String tokenUri, String redirectUriTemplate, String scope, String authorizationGrantType, String userInfoUri, String userNameAttribute, String jwkSetUri, String clientAuthenticationMethod, String clientName, String loginButtonLabel, String loginButtonIcon, OAuth2MapperConfig mapperConfig) { super(id); this.registrationId = registrationId; this.clientId = clientId; @@ -52,6 +52,6 @@ public class OAuth2ClientRegistration extends BaseData { this.clientName = clientName; this.loginButtonLabel = loginButtonLabel; this.loginButtonIcon = loginButtonIcon; - this.mapperConfigId = mapperConfigId; + this.mapperConfig = mapperConfig; } } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2MapperConfig.java b/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2MapperConfig.java index 95c1fdf4a8..1e45edc4de 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2MapperConfig.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/oauth2/OAuth2MapperConfig.java @@ -1,34 +1,18 @@ package org.thingsboard.server.common.data.oauth2; -import lombok.*; -import org.thingsboard.server.common.data.BaseData; -import org.thingsboard.server.common.data.id.OAuth2IntegrationId; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; -@EqualsAndHashCode(callSuper = true) +@Builder(toBuilder = true) +@EqualsAndHashCode @Data @ToString -public class OAuth2MapperConfig extends BaseData { +public class OAuth2MapperConfig { private boolean allowUserCreation; private boolean activateUser; private MapperType type; private OAuth2BasicMapperConfig basicConfig; private OAuth2CustomMapperConfig customConfig; - - public OAuth2MapperConfig() { - super(); - } - - public OAuth2MapperConfig(OAuth2IntegrationId id) { - super(id); - } - - @Builder(toBuilder = true) - public OAuth2MapperConfig(OAuth2IntegrationId id, boolean allowUserCreation, boolean activateUser, MapperType type, OAuth2BasicMapperConfig basicConfig, OAuth2CustomMapperConfig customConfig) { - super(id); - this.allowUserCreation = allowUserCreation; - this.activateUser = activateUser; - this.type = type; - this.basicConfig = basicConfig; - this.customConfig = customConfig; - } } 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 c551114aa5..2f967b648b 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 @@ -359,7 +359,6 @@ public class ModelConstants { */ public static final String OAUTH2_CLIENT_REGISTRATION_COLUMN_FAMILY_NAME = "oauth2_client_registration"; public static final String OAUTH2_CLIENT_REGISTRATION_ID_PROPERTY = "registration_id"; - public static final String OAUTH2_CLIENT_REGISTRATION_MAPPER_CONFIG_ID_PROPERTY = "mapper_config_id"; public static final String OAUTH2_CLIENT_ID_PROPERTY = "client_id"; public static final String OAUTH2_CLIENT_SECRET_PROPERTY = "client_secret"; public static final String OAUTH2_AUTHORIZATION_URI_PROPERTY = "authorization_uri"; @@ -374,11 +373,6 @@ public class ModelConstants { public static final String OAUTH2_CLIENT_NAME_PROPERTY = "client_name"; public static final String OAUTH2_LOGIN_BUTTON_LABEL_PROPERTY = "login_button_label"; public static final String OAUTH2_LOGIN_BUTTON_ICON_PROPERTY = "login_button_icon"; - - /** - * Cassandra OAuth2 mapper config constants. - */ - public static final String OAUTH2_MAPPER_CONFIG_COLUMN_FAMILY_NAME = "oauth2_mapper_config"; public static final String OAUTH2_ALLOW_USER_CREATION_PROPERTY = "allow_user_creation"; public static final String OAUTH2_ACTIVATE_USER_PROPERTY = "activate_user"; public static final String OAUTH2_MAPPER_TYPE_PROPERTY = "type"; 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 bc402a7d7d..7189b315c2 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 @@ -21,14 +21,12 @@ import lombok.NoArgsConstructor; import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.EntityView; import org.thingsboard.server.common.data.id.OAuth2IntegrationId; -import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistration; +import org.thingsboard.server.common.data.oauth2.*; import org.thingsboard.server.dao.model.BaseSqlEntity; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.util.mapping.JsonStringType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; +import javax.persistence.*; @Data @EqualsAndHashCode(callSuper = true) @@ -39,8 +37,6 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.model.sql; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.hibernate.annotations.TypeDef; -import org.thingsboard.server.common.data.id.OAuth2IntegrationId; -import org.thingsboard.server.common.data.oauth2.MapperType; -import org.thingsboard.server.common.data.oauth2.OAuth2BasicMapperConfig; -import org.thingsboard.server.common.data.oauth2.OAuth2CustomMapperConfig; -import org.thingsboard.server.common.data.oauth2.OAuth2MapperConfig; -import org.thingsboard.server.dao.model.BaseSqlEntity; -import org.thingsboard.server.dao.model.ModelConstants; -import org.thingsboard.server.dao.util.mapping.JsonStringType; - -import javax.persistence.*; - -@Data -@EqualsAndHashCode(callSuper = true) -@Entity -@TypeDef(name = "json", typeClass = JsonStringType.class) -@Table(name = ModelConstants.OAUTH2_MAPPER_CONFIG_COLUMN_FAMILY_NAME) -public class OAuth2MapperConfigEntity extends BaseSqlEntity { - - @Column(name = ModelConstants.OAUTH2_ALLOW_USER_CREATION_PROPERTY) - private Boolean allowUserCreation; - @Column(name = ModelConstants.OAUTH2_ACTIVATE_USER_PROPERTY) - private Boolean activateUser; - @Enumerated(EnumType.STRING) - @Column(name = ModelConstants.OAUTH2_MAPPER_TYPE_PROPERTY) - private MapperType type; - @Column(name = ModelConstants.OAUTH2_EMAIL_ATTRIBUTE_KEY_PROPERTY) - private String emailAttributeKey; - @Column(name = ModelConstants.OAUTH2_FIRST_NAME_ATTRIBUTE_KEY_PROPERTY) - private String firstNameAttributeKey; - @Column(name = ModelConstants.OAUTH2_LAST_NAME_ATTRIBUTE_KEY_PROPERTY) - private String lastNameAttributeKey; - @Column(name = ModelConstants.OAUTH2_TENANT_NAME_STRATEGY_PROPERTY) - private String tenantNameStrategy; - @Column(name = ModelConstants.OAUTH2_TENANT_NAME_PATTERN_PROPERTY) - private String tenantNamePattern; - @Column(name = ModelConstants.OAUTH2_CUSTOMER_NAME_PATTERN_PROPERTY) - private String customerNamePattern; - @Column(name = ModelConstants.OAUTH2_DEFAULT_DASHBOARD_NAME_PROPERTY) - private String defaultDashboardName; - @Column(name = ModelConstants.OAUTH2_ALWAYS_FULL_SCREEN_PROPERTY) - private Boolean alwaysFullScreen; - @Column(name = ModelConstants.OAUTH2_MAPPER_URL_PROPERTY) - private String url; - @Column(name = ModelConstants.OAUTH2_MAPPER_USERNAME_PROPERTY) - private String username; - @Column(name = ModelConstants.OAUTH2_MAPPER_PASSWORD_PROPERTY) - private String password; - - public OAuth2MapperConfigEntity() { - super(); - } - - @Override - public OAuth2MapperConfig toData() { - return OAuth2MapperConfig.builder() - .id(new OAuth2IntegrationId(toUUID(id))) - .allowUserCreation(allowUserCreation) - .activateUser(activateUser) - .type(type) - .basicConfig( - OAuth2BasicMapperConfig.builder() - .emailAttributeKey(emailAttributeKey) - .firstNameAttributeKey(firstNameAttributeKey) - .lastNameAttributeKey(lastNameAttributeKey) - .tenantNameStrategy(tenantNameStrategy) - .tenantNamePattern(tenantNamePattern) - .customerNamePattern(customerNamePattern) - .defaultDashboardName(defaultDashboardName) - .alwaysFullScreen(alwaysFullScreen) - .build() - ) - .customConfig( - OAuth2CustomMapperConfig.builder() - .url(url) - .username(username) - .password(password) - .build() - ) - .build(); - } -} diff --git a/dao/src/main/resources/sql/schema-entities-hsql.sql b/dao/src/main/resources/sql/schema-entities-hsql.sql index ca14f0b0e8..b76665df3f 100644 --- a/dao/src/main/resources/sql/schema-entities-hsql.sql +++ b/dao/src/main/resources/sql/schema-entities-hsql.sql @@ -254,27 +254,22 @@ CREATE TABLE IF NOT EXISTS entity_view ( ); CREATE TABLE IF NOT EXISTS oauth2_client_registration ( - id varchar(31) NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, - registration_id varchar(255) UNIQUE, - mapper_config_id varchar(31), - client_id varchar(255), - client_secret varchar(255), - authorization_uri varchar(255), - token_uri varchar(255), - redirect_uri_template varchar(255), - scope varchar(255), - authorization_grant_type varchar(255), - user_info_uri varchar(255), - user_name_attribute varchar(255), - jwk_set_uri varchar(255), - client_authentication_method varchar(255), - client_name varchar(255), - login_button_label varchar(255), - login_button_icon varchar(255) -); - -CREATE TABLE IF NOT EXISTS oauth2_mapper_config ( - id varchar(31) NOT NULL CONSTRAINT oauth2_mapper_config_pkey PRIMARY KEY, + id varchar(31) NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, + registration_id varchar(255) UNIQUE, + client_id varchar(255), + client_secret varchar(255), + authorization_uri varchar(255), + token_uri varchar(255), + redirect_uri_template varchar(255), + scope varchar(255), + authorization_grant_type varchar(255), + user_info_uri varchar(255), + user_name_attribute varchar(255), + jwk_set_uri varchar(255), + client_authentication_method varchar(255), + client_name varchar(255), + login_button_label varchar(255), + login_button_icon varchar(255), allow_user_creation boolean, activate_user boolean, type varchar(31), diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index 820a7775c5..a27907fc45 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -254,27 +254,22 @@ CREATE TABLE IF NOT EXISTS entity_view ( ); CREATE TABLE IF NOT EXISTS oauth2_client_registration ( - id varchar(31) NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, - registration_id varchar(255) UNIQUE, - mapper_config_id varchar(31), - client_id varchar(255), - client_secret varchar(255), - authorization_uri varchar(255), - token_uri varchar(255), - redirect_uri_template varchar(255), - scope varchar(255), - authorization_grant_type varchar(255), - user_info_uri varchar(255), - user_name_attribute varchar(255), - jwk_set_uri varchar(255), - client_authentication_method varchar(255), - client_name varchar(255), - login_button_label varchar(255), - login_button_icon varchar(255) -); - -CREATE TABLE IF NOT EXISTS oauth2_mapper_config ( - id varchar(31) NOT NULL CONSTRAINT oauth2_mapper_config_pkey PRIMARY KEY, + id varchar(31) NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, + registration_id varchar(255) UNIQUE, + client_id varchar(255), + client_secret varchar(255), + authorization_uri varchar(255), + token_uri varchar(255), + redirect_uri_template varchar(255), + scope varchar(255), + authorization_grant_type varchar(255), + user_info_uri varchar(255), + user_name_attribute varchar(255), + jwk_set_uri varchar(255), + client_authentication_method varchar(255), + client_name varchar(255), + login_button_label varchar(255), + login_button_icon varchar(255), allow_user_creation boolean, activate_user boolean, type varchar(31),