Commit 175a9c903db751f0c391faa4d3df8f1d4f935f8d

Authored by Igor Kulikov
1 parent 92c9bc0a

OAuth: activate user with empty password - to be able to set up it later

@@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
19 import org.springframework.beans.factory.annotation.Autowired; 19 import org.springframework.beans.factory.annotation.Autowired;
20 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; 20 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
21 import org.springframework.security.core.userdetails.UsernameNotFoundException; 21 import org.springframework.security.core.userdetails.UsernameNotFoundException;
  22 +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
22 import org.springframework.util.StringUtils; 23 import org.springframework.util.StringUtils;
23 import org.thingsboard.server.common.data.Customer; 24 import org.thingsboard.server.common.data.Customer;
24 import org.thingsboard.server.common.data.Tenant; 25 import org.thingsboard.server.common.data.Tenant;
@@ -27,6 +28,7 @@ import org.thingsboard.server.common.data.id.CustomerId; @@ -27,6 +28,7 @@ import org.thingsboard.server.common.data.id.CustomerId;
27 import org.thingsboard.server.common.data.id.TenantId; 28 import org.thingsboard.server.common.data.id.TenantId;
28 import org.thingsboard.server.common.data.page.TextPageLink; 29 import org.thingsboard.server.common.data.page.TextPageLink;
29 import org.thingsboard.server.common.data.security.Authority; 30 import org.thingsboard.server.common.data.security.Authority;
  31 +import org.thingsboard.server.common.data.security.UserCredentials;
30 import org.thingsboard.server.dao.customer.CustomerService; 32 import org.thingsboard.server.dao.customer.CustomerService;
31 import org.thingsboard.server.dao.oauth2.OAuth2User; 33 import org.thingsboard.server.dao.oauth2.OAuth2User;
32 import org.thingsboard.server.dao.tenant.TenantService; 34 import org.thingsboard.server.dao.tenant.TenantService;
@@ -48,6 +50,9 @@ public abstract class AbstractOAuth2ClientMapper { @@ -48,6 +50,9 @@ public abstract class AbstractOAuth2ClientMapper {
48 private UserService userService; 50 private UserService userService;
49 51
50 @Autowired 52 @Autowired
  53 + private BCryptPasswordEncoder passwordEncoder;
  54 +
  55 + @Autowired
51 private TenantService tenantService; 56 private TenantService tenantService;
52 57
53 @Autowired 58 @Autowired
@@ -88,6 +93,8 @@ public abstract class AbstractOAuth2ClientMapper { @@ -88,6 +93,8 @@ public abstract class AbstractOAuth2ClientMapper {
88 user.setFirstName(oauth2User.getFirstName()); 93 user.setFirstName(oauth2User.getFirstName());
89 user.setLastName(oauth2User.getLastName()); 94 user.setLastName(oauth2User.getLastName());
90 user = userService.saveUser(user); 95 user = userService.saveUser(user);
  96 + UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getTenantId(), user.getId());
  97 + userService.activateUserCredentials(user.getTenantId(), userCredentials.getActivateToken(), passwordEncoder.encode(""));
91 } 98 }
92 } catch (Exception e) { 99 } catch (Exception e) {
93 log.error("Can't get or create security user from oauth2 user", e); 100 log.error("Can't get or create security user from oauth2 user", e);