Added saveSystemOAuth2ClientRegistration method
This commit is contained in:
parent
ac8cfebe31
commit
b20b032f0b
@ -15,13 +15,20 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.dao.oauth2;
|
package org.thingsboard.server.dao.oauth2;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.thingsboard.server.common.data.AdminSettings;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
import org.thingsboard.server.common.data.id.EntityId;
|
import org.thingsboard.server.common.data.id.EntityId;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.oauth2.*;
|
import org.thingsboard.server.common.data.oauth2.*;
|
||||||
|
import org.thingsboard.server.dao.exception.IncorrectParameterException;
|
||||||
|
import org.thingsboard.server.dao.settings.AdminSettingsService;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -32,10 +39,14 @@ import java.util.stream.Stream;
|
|||||||
@Service
|
@Service
|
||||||
public class OAuth2ServiceImpl implements OAuth2Service {
|
public class OAuth2ServiceImpl implements OAuth2Service {
|
||||||
|
|
||||||
|
private static final ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
||||||
|
private static final String OAUTH2_CLIENT_REGISTRATIONS_PARAMS = "oauth2ClientRegistrationsParams";
|
||||||
|
|
||||||
private static final String OAUTH2_AUTHORIZATION_PATH_TEMPLATE = "/oauth2/authorization/%s";
|
private static final String OAUTH2_AUTHORIZATION_PATH_TEMPLATE = "/oauth2/authorization/%s";
|
||||||
|
|
||||||
@Autowired(required = false)
|
@Autowired
|
||||||
OAuth2Configuration oauth2Configuration;
|
private AdminSettingsService adminSettingsService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<OAuth2ClientInfo> getOAuth2Clients() {
|
public List<OAuth2ClientInfo> getOAuth2Clients() {
|
||||||
@ -59,11 +70,31 @@ public class OAuth2ServiceImpl implements OAuth2Service {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OAuth2ClientRegistration saveSystemOAuth2ClientRegistration(OAuth2ClientRegistration clientRegistration) {
|
public OAuth2ClientRegistration saveSystemOAuth2ClientRegistration(OAuth2ClientRegistration clientRegistration) {
|
||||||
return null;
|
// TODO check by registration ID in entities
|
||||||
|
AdminSettings clientRegistrationParamsSettings = adminSettingsService.findAdminSettingsByKey(TenantId.SYS_TENANT_ID, OAUTH2_CLIENT_REGISTRATIONS_PARAMS);
|
||||||
|
if (clientRegistrationParamsSettings == null) {
|
||||||
|
clientRegistrationParamsSettings = new AdminSettings();
|
||||||
|
clientRegistrationParamsSettings.setKey(OAUTH2_CLIENT_REGISTRATIONS_PARAMS);
|
||||||
|
ObjectNode node = mapper.createObjectNode();
|
||||||
|
clientRegistrationParamsSettings.setJsonValue(node);
|
||||||
|
}
|
||||||
|
String json;
|
||||||
|
try {
|
||||||
|
json = mapper.writeValueAsString(clientRegistration);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
log.error("Unable to convert OAuth2 Client Registration Params to JSON!", e);
|
||||||
|
throw new IncorrectParameterException("Unable to convert OAuth2 Client Registration Params to JSON!");
|
||||||
|
}
|
||||||
|
ObjectNode oldClientRegistrations = (ObjectNode) clientRegistrationParamsSettings.getJsonValue();
|
||||||
|
oldClientRegistrations.put(clientRegistration.getRegistrationId(), json);
|
||||||
|
adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, clientRegistrationParamsSettings);
|
||||||
|
// TODO ask if that's worth it
|
||||||
|
return getClientRegistration(clientRegistration.getRegistrationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OAuth2ClientRegistration saveTenantOAuth2ClientRegistration(TenantId tenantId, OAuth2ClientRegistration clientRegistration) {
|
public OAuth2ClientRegistration saveTenantOAuth2ClientRegistration(TenantId tenantId, OAuth2ClientRegistration clientRegistration) {
|
||||||
|
// TODO check by registration ID in system
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user