|
|
|
@ -20,6 +20,7 @@ import lombok.Getter; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.context.ApplicationEventPublisher; |
|
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
|
|
|
import org.springframework.security.core.userdetails.UsernameNotFoundException; |
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
|
|
|
@ -41,6 +42,8 @@ import org.thingsboard.server.common.data.security.Authority; |
|
|
|
import org.thingsboard.server.common.data.security.UserCredentials; |
|
|
|
import org.thingsboard.server.dao.customer.CustomerService; |
|
|
|
import org.thingsboard.server.dao.dashboard.DashboardService; |
|
|
|
import org.thingsboard.server.dao.entity.EntityStateSyncManager; |
|
|
|
import org.thingsboard.server.dao.eventsourcing.SaveEntityEvent; |
|
|
|
import org.thingsboard.server.dao.oauth2.OAuth2User; |
|
|
|
import org.thingsboard.server.dao.tenant.TbTenantProfileCache; |
|
|
|
import org.thingsboard.server.dao.tenant.TenantService; |
|
|
|
@ -84,6 +87,12 @@ public abstract class AbstractOAuth2ClientMapper { |
|
|
|
@Autowired |
|
|
|
protected TbTenantProfileCache tenantProfileCache; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ApplicationEventPublisher eventPublisher; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private EntityStateSyncManager entityStateSyncManager; |
|
|
|
|
|
|
|
@Value("${edges.enabled}") |
|
|
|
@Getter |
|
|
|
private boolean edgesEnabled; |
|
|
|
@ -170,12 +179,17 @@ public abstract class AbstractOAuth2ClientMapper { |
|
|
|
List<Tenant> tenants = tenantService.findTenants(new PageLink(1, 0, tenantName)).getData(); |
|
|
|
Tenant tenant; |
|
|
|
if (tenants == null || tenants.isEmpty()) { |
|
|
|
entityStateSyncManager.getSync().set(true); |
|
|
|
|
|
|
|
tenant = new Tenant(); |
|
|
|
tenant.setTitle(tenantName); |
|
|
|
tenant = tenantService.saveTenant(tenant); |
|
|
|
installScripts.createDefaultRuleChains(tenant.getId()); |
|
|
|
installScripts.createDefaultEdgeRuleChains(tenant.getId()); |
|
|
|
tenantProfileCache.evict(tenant.getId()); |
|
|
|
|
|
|
|
entityStateSyncManager.getSync().remove(); |
|
|
|
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(TenantId.SYS_TENANT_ID).entityId(tenant.getId()).entity(tenant).added(true).build()); |
|
|
|
} else { |
|
|
|
tenant = tenants.get(0); |
|
|
|
} |
|
|
|
|