Browse Source

Added code for validating AdminSettingsId

pull/3557/head
vzikratyi 6 years ago
parent
commit
7468f4b713
  1. 14
      dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ServiceImpl.java

14
dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ServiceImpl.java

@ -258,6 +258,7 @@ public class OAuth2ServiceImpl implements OAuth2Service {
private void validate(OAuth2ClientsParams oAuth2ClientsParams) {
validateDomainNames(oAuth2ClientsParams);
validateAdminSettingsIds(oAuth2ClientsParams);
toClientRegistrationStream(oAuth2ClientsParams)
.forEach(validator);
@ -281,6 +282,19 @@ public class OAuth2ServiceImpl implements OAuth2Service {
}
}
private void validateAdminSettingsIds(OAuth2ClientsParams oAuth2ClientsParams) {
List<String> adminSettingsIds = oAuth2ClientsParams.getClientsDomainsParams().stream()
.map(OAuth2ClientsDomainParams::getAdminSettingsId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
boolean duplicateAdminSettingsIds = adminSettingsIds.stream()
.anyMatch(adminSettingsId -> Collections.frequency(adminSettingsIds, adminSettingsId) > 1);
if (duplicateAdminSettingsIds) {
throw new DataValidationException("All admin settings ids should be unique!");
}
}
@Override
public OAuth2ClientsParams getSystemOAuth2ClientsParams() {
AdminSettings oauth2ClientsParamsSettings = adminSettingsService.findAdminSettingsByKey(TenantId.SYS_TENANT_ID, OAUTH2_CLIENT_REGISTRATIONS_PARAMS);

Loading…
Cancel
Save