From 549ab8addf4be5b5e0e7139a4c087e50d20c2e17 Mon Sep 17 00:00:00 2001 From: VoBa Date: Tue, 5 May 2020 19:24:35 +0300 Subject: [PATCH 1/2] Exclude old spring-core version (#2733) * Renamed env variabled. Added sync * Exclude old spring-core version --- pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pom.xml b/pom.xml index 524fb8ec3e..0fb32edc10 100755 --- a/pom.xml +++ b/pom.xml @@ -468,11 +468,23 @@ org.springframework.security spring-security-oauth2-client ${spring-security.version} + + + org.springframework + spring-core + + org.springframework.security spring-security-oauth2-jose ${spring-security.version} + + + org.springframework + spring-core + + org.springframework.boot From 92c9bc0ae569e01cdfc47cf70085ef9953a2be3d Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 6 May 2020 09:58:52 +0300 Subject: [PATCH 2/2] Improve oauth mapper - create default rule chains for tenant --- .../auth/oauth2/AbstractOAuth2ClientMapper.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/security/auth/oauth2/AbstractOAuth2ClientMapper.java b/application/src/main/java/org/thingsboard/server/service/security/auth/oauth2/AbstractOAuth2ClientMapper.java index a5c53f6cff..53acdd5e85 100644 --- a/application/src/main/java/org/thingsboard/server/service/security/auth/oauth2/AbstractOAuth2ClientMapper.java +++ b/application/src/main/java/org/thingsboard/server/service/security/auth/oauth2/AbstractOAuth2ClientMapper.java @@ -31,9 +31,11 @@ import org.thingsboard.server.dao.customer.CustomerService; import org.thingsboard.server.dao.oauth2.OAuth2User; import org.thingsboard.server.dao.tenant.TenantService; import org.thingsboard.server.dao.user.UserService; +import org.thingsboard.server.service.install.InstallScripts; import org.thingsboard.server.service.security.model.SecurityUser; import org.thingsboard.server.service.security.model.UserPrincipal; +import java.io.IOException; import java.util.List; import java.util.Optional; import java.util.concurrent.locks.Lock; @@ -51,6 +53,9 @@ public abstract class AbstractOAuth2ClientMapper { @Autowired private CustomerService customerService; + @Autowired + private InstallScripts installScripts; + private final Lock userCreationLock = new ReentrantLock(); protected SecurityUser getOrCreateSecurityUserFromOAuth2User(OAuth2User oauth2User, boolean allowUserCreation) { @@ -84,6 +89,9 @@ public abstract class AbstractOAuth2ClientMapper { user.setLastName(oauth2User.getLastName()); user = userService.saveUser(user); } + } catch (Exception e) { + log.error("Can't get or create security user from oauth2 user", e); + throw new RuntimeException("Can't get or create security user from oauth2 user", e); } finally { userCreationLock.unlock(); } @@ -98,13 +106,14 @@ public abstract class AbstractOAuth2ClientMapper { } } - private TenantId getTenantId(String tenantName) { + private TenantId getTenantId(String tenantName) throws IOException { List tenants = tenantService.findTenants(new TextPageLink(1, tenantName)).getData(); Tenant tenant; if (tenants == null || tenants.isEmpty()) { tenant = new Tenant(); tenant.setTitle(tenantName); tenant = tenantService.saveTenant(tenant); + installScripts.createDefaultRuleChains(tenant.getId()); } else { tenant = tenants.get(0); }