|
|
|
@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
|
|
|
import org.springframework.security.core.userdetails.UsernameNotFoundException; |
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
import org.thingsboard.server.common.data.Customer; |
|
|
|
import org.thingsboard.server.common.data.Tenant; |
|
|
|
@ -27,6 +28,7 @@ import org.thingsboard.server.common.data.id.CustomerId; |
|
|
|
import org.thingsboard.server.common.data.id.TenantId; |
|
|
|
import org.thingsboard.server.common.data.page.TextPageLink; |
|
|
|
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.oauth2.OAuth2User; |
|
|
|
import org.thingsboard.server.dao.tenant.TenantService; |
|
|
|
@ -47,6 +49,9 @@ public abstract class AbstractOAuth2ClientMapper { |
|
|
|
@Autowired |
|
|
|
private UserService userService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private BCryptPasswordEncoder passwordEncoder; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private TenantService tenantService; |
|
|
|
|
|
|
|
@ -88,6 +93,8 @@ public abstract class AbstractOAuth2ClientMapper { |
|
|
|
user.setFirstName(oauth2User.getFirstName()); |
|
|
|
user.setLastName(oauth2User.getLastName()); |
|
|
|
user = userService.saveUser(user); |
|
|
|
UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getTenantId(), user.getId()); |
|
|
|
userService.activateUserCredentials(user.getTenantId(), userCredentials.getActivateToken(), passwordEncoder.encode("")); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("Can't get or create security user from oauth2 user", e); |
|
|
|
|