Commit e841f10b49982c68b40635db1e2df4938091184a

Authored by vzikratyi
1 parent 12e2d2ef

Added 'enabled' field to ClientRegistration

@@ -18,6 +18,7 @@ DROP TABLE IF EXISTS oauth2_client_registration; @@ -18,6 +18,7 @@ DROP TABLE IF EXISTS oauth2_client_registration;
18 18
19 CREATE TABLE IF NOT EXISTS oauth2_client_registration ( 19 CREATE TABLE IF NOT EXISTS oauth2_client_registration (
20 id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, 20 id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY,
  21 + enabled boolean,
21 created_time bigint NOT NULL, 22 created_time bigint NOT NULL,
22 additional_info varchar, 23 additional_info varchar,
23 domain_name varchar(255), 24 domain_name varchar(255),
@@ -34,6 +34,7 @@ import java.util.List; @@ -34,6 +34,7 @@ import java.util.List;
34 @NoArgsConstructor 34 @NoArgsConstructor
35 public class OAuth2ClientRegistration extends SearchTextBasedWithAdditionalInfo<OAuth2ClientRegistrationId> implements HasName { 35 public class OAuth2ClientRegistration extends SearchTextBasedWithAdditionalInfo<OAuth2ClientRegistrationId> implements HasName {
36 36
  37 + private boolean enabled;
37 private String domainName; 38 private String domainName;
38 private String redirectUriTemplate; 39 private String redirectUriTemplate;
39 private OAuth2MapperConfig mapperConfig; 40 private OAuth2MapperConfig mapperConfig;
@@ -51,6 +52,7 @@ public class OAuth2ClientRegistration extends SearchTextBasedWithAdditionalInfo< @@ -51,6 +52,7 @@ public class OAuth2ClientRegistration extends SearchTextBasedWithAdditionalInfo<
51 52
52 public OAuth2ClientRegistration(OAuth2ClientRegistration clientRegistration) { 53 public OAuth2ClientRegistration(OAuth2ClientRegistration clientRegistration) {
53 super(clientRegistration); 54 super(clientRegistration);
  55 + this.enabled = clientRegistration.enabled;
54 this.domainName = clientRegistration.domainName; 56 this.domainName = clientRegistration.domainName;
55 this.redirectUriTemplate = clientRegistration.redirectUriTemplate; 57 this.redirectUriTemplate = clientRegistration.redirectUriTemplate;
56 this.mapperConfig = clientRegistration.mapperConfig; 58 this.mapperConfig = clientRegistration.mapperConfig;
@@ -29,5 +29,6 @@ import java.util.Objects; @@ -29,5 +29,6 @@ import java.util.Objects;
29 @NoArgsConstructor 29 @NoArgsConstructor
30 @AllArgsConstructor 30 @AllArgsConstructor
31 public class OAuth2ClientsParams { 31 public class OAuth2ClientsParams {
  32 + private boolean enabled;
32 private List<OAuth2ClientsDomainParams> oAuth2DomainDtos; 33 private List<OAuth2ClientsDomainParams> oAuth2DomainDtos;
33 } 34 }
@@ -358,6 +358,7 @@ public class ModelConstants { @@ -358,6 +358,7 @@ public class ModelConstants {
358 * OAuth2 client registration constants. 358 * OAuth2 client registration constants.
359 */ 359 */
360 public static final String OAUTH2_TENANT_ID_PROPERTY = TENANT_ID_PROPERTY; 360 public static final String OAUTH2_TENANT_ID_PROPERTY = TENANT_ID_PROPERTY;
  361 + public static final String OAUTH2_ENABLED_PROPERTY = "enabled";
361 public static final String OAUTH2_CLIENT_REGISTRATION_COLUMN_FAMILY_NAME = "oauth2_client_registration"; 362 public static final String OAUTH2_CLIENT_REGISTRATION_COLUMN_FAMILY_NAME = "oauth2_client_registration";
362 public static final String OAUTH2_CLIENT_REGISTRATION_TEMPLATE_COLUMN_FAMILY_NAME = "oauth2_client_registration_template"; 363 public static final String OAUTH2_CLIENT_REGISTRATION_TEMPLATE_COLUMN_FAMILY_NAME = "oauth2_client_registration_template";
363 public static final String OAUTH2_TEMPLATE_PROVIDER_ID_PROPERTY = "provider_id"; 364 public static final String OAUTH2_TEMPLATE_PROVIDER_ID_PROPERTY = "provider_id";
@@ -38,6 +38,8 @@ import java.util.UUID; @@ -38,6 +38,8 @@ import java.util.UUID;
38 @Table(name = ModelConstants.OAUTH2_CLIENT_REGISTRATION_COLUMN_FAMILY_NAME) 38 @Table(name = ModelConstants.OAUTH2_CLIENT_REGISTRATION_COLUMN_FAMILY_NAME)
39 public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRegistration> { 39 public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRegistration> {
40 40
  41 + @Column(name = ModelConstants.OAUTH2_ENABLED_PROPERTY)
  42 + private Boolean enabled;
41 @Column(name = ModelConstants.OAUTH2_DOMAIN_NAME_PROPERTY) 43 @Column(name = ModelConstants.OAUTH2_DOMAIN_NAME_PROPERTY)
42 private String domainName; 44 private String domainName;
43 @Column(name = ModelConstants.OAUTH2_CLIENT_ID_PROPERTY) 45 @Column(name = ModelConstants.OAUTH2_CLIENT_ID_PROPERTY)
@@ -109,6 +111,7 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRe @@ -109,6 +111,7 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRe
109 if (clientRegistration.getId() != null) { 111 if (clientRegistration.getId() != null) {
110 this.setUuid(clientRegistration.getId().getId()); 112 this.setUuid(clientRegistration.getId().getId());
111 } 113 }
  114 + this.enabled = clientRegistration.isEnabled();
112 this.domainName = clientRegistration.getDomainName(); 115 this.domainName = clientRegistration.getDomainName();
113 this.createdTime = clientRegistration.getCreatedTime(); 116 this.createdTime = clientRegistration.getCreatedTime();
114 this.clientId = clientRegistration.getClientId(); 117 this.clientId = clientRegistration.getClientId();
@@ -154,6 +157,7 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRe @@ -154,6 +157,7 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity<OAuth2ClientRe
154 public OAuth2ClientRegistration toData() { 157 public OAuth2ClientRegistration toData() {
155 OAuth2ClientRegistration clientRegistration = new OAuth2ClientRegistration(); 158 OAuth2ClientRegistration clientRegistration = new OAuth2ClientRegistration();
156 clientRegistration.setId(new OAuth2ClientRegistrationId(id)); 159 clientRegistration.setId(new OAuth2ClientRegistrationId(id));
  160 + clientRegistration.setEnabled(enabled);
157 clientRegistration.setCreatedTime(createdTime); 161 clientRegistration.setCreatedTime(createdTime);
158 clientRegistration.setDomainName(domainName); 162 clientRegistration.setDomainName(domainName);
159 clientRegistration.setAdditionalInfo(additionalInfo); 163 clientRegistration.setAdditionalInfo(additionalInfo);
@@ -48,6 +48,7 @@ public class OAuth2ServiceImpl extends AbstractEntityService implements OAuth2Se @@ -48,6 +48,7 @@ public class OAuth2ServiceImpl extends AbstractEntityService implements OAuth2Se
48 log.trace("Executing getOAuth2Clients [{}]", domainName); 48 log.trace("Executing getOAuth2Clients [{}]", domainName);
49 validateString(domainName, INCORRECT_DOMAIN_NAME + domainName); 49 validateString(domainName, INCORRECT_DOMAIN_NAME + domainName);
50 return clientRegistrationDao.findByDomainName(domainName).stream() 50 return clientRegistrationDao.findByDomainName(domainName).stream()
  51 + .filter(OAuth2ClientRegistration::isEnabled)
51 .map(OAuth2Utils::toClientInfo) 52 .map(OAuth2Utils::toClientInfo)
52 .collect(Collectors.toList()); 53 .collect(Collectors.toList());
53 } 54 }
@@ -37,15 +37,19 @@ public class OAuth2Utils { @@ -37,15 +37,19 @@ public class OAuth2Utils {
37 public static List<OAuth2ClientRegistration> toClientRegistrations(OAuth2ClientsParams oAuth2Params) { 37 public static List<OAuth2ClientRegistration> toClientRegistrations(OAuth2ClientsParams oAuth2Params) {
38 return oAuth2Params.getOAuth2DomainDtos().stream() 38 return oAuth2Params.getOAuth2DomainDtos().stream()
39 .flatMap(domainParams -> domainParams.getClientRegistrations().stream() 39 .flatMap(domainParams -> domainParams.getClientRegistrations().stream()
40 - .map(clientRegistrationDto -> OAuth2Utils.toClientRegistration(domainParams.getDomainName(),  
41 - domainParams.getRedirectUriTemplate(), clientRegistrationDto) 40 + .map(clientRegistrationDto -> OAuth2Utils.toClientRegistration(oAuth2Params.isEnabled(),
  41 + domainParams.getDomainName(),
  42 + domainParams.getRedirectUriTemplate(),
  43 + clientRegistrationDto)
42 )) 44 ))
43 .collect(Collectors.toList()); 45 .collect(Collectors.toList());
44 } 46 }
45 47
46 public static OAuth2ClientsParams toOAuth2Params(List<OAuth2ClientRegistration> clientRegistrations) { 48 public static OAuth2ClientsParams toOAuth2Params(List<OAuth2ClientRegistration> clientRegistrations) {
47 Map<String, OAuth2ClientsDomainParams> domainParamsMap = new HashMap<>(); 49 Map<String, OAuth2ClientsDomainParams> domainParamsMap = new HashMap<>();
  50 + boolean enabled = true;
48 for (OAuth2ClientRegistration clientRegistration : clientRegistrations) { 51 for (OAuth2ClientRegistration clientRegistration : clientRegistrations) {
  52 + enabled = clientRegistration.isEnabled();
49 String domainName = clientRegistration.getDomainName(); 53 String domainName = clientRegistration.getDomainName();
50 OAuth2ClientsDomainParams domainParams = domainParamsMap.computeIfAbsent(domainName, 54 OAuth2ClientsDomainParams domainParams = domainParamsMap.computeIfAbsent(domainName,
51 key -> new OAuth2ClientsDomainParams(domainName, clientRegistration.getRedirectUriTemplate(), new ArrayList<>()) 55 key -> new OAuth2ClientsDomainParams(domainName, clientRegistration.getRedirectUriTemplate(), new ArrayList<>())
@@ -53,7 +57,7 @@ public class OAuth2Utils { @@ -53,7 +57,7 @@ public class OAuth2Utils {
53 domainParams.getClientRegistrations() 57 domainParams.getClientRegistrations()
54 .add(toClientRegistrationDto(clientRegistration)); 58 .add(toClientRegistrationDto(clientRegistration));
55 } 59 }
56 - return new OAuth2ClientsParams(new ArrayList<>(domainParamsMap.values())); 60 + return new OAuth2ClientsParams(enabled, new ArrayList<>(domainParamsMap.values()));
57 } 61 }
58 62
59 public static ClientRegistrationDto toClientRegistrationDto(OAuth2ClientRegistration oAuth2ClientRegistration) { 63 public static ClientRegistrationDto toClientRegistrationDto(OAuth2ClientRegistration oAuth2ClientRegistration) {
@@ -76,10 +80,12 @@ public class OAuth2Utils { @@ -76,10 +80,12 @@ public class OAuth2Utils {
76 .build(); 80 .build();
77 } 81 }
78 82
79 - public static OAuth2ClientRegistration toClientRegistration(String domainName, String redirectUriTemplate, 83 + private static OAuth2ClientRegistration toClientRegistration(boolean enabled, String domainName,
  84 + String redirectUriTemplate,
80 ClientRegistrationDto clientRegistrationDto) { 85 ClientRegistrationDto clientRegistrationDto) {
81 OAuth2ClientRegistration clientRegistration = new OAuth2ClientRegistration(); 86 OAuth2ClientRegistration clientRegistration = new OAuth2ClientRegistration();
82 clientRegistration.setId(clientRegistrationDto.getId()); 87 clientRegistration.setId(clientRegistrationDto.getId());
  88 + clientRegistration.setEnabled(enabled);
83 clientRegistration.setCreatedTime(clientRegistrationDto.getCreatedTime()); 89 clientRegistration.setCreatedTime(clientRegistrationDto.getCreatedTime());
84 clientRegistration.setDomainName(domainName); 90 clientRegistration.setDomainName(domainName);
85 clientRegistration.setRedirectUriTemplate(redirectUriTemplate); 91 clientRegistration.setRedirectUriTemplate(redirectUriTemplate);
@@ -293,6 +293,7 @@ CREATE TABLE IF NOT EXISTS ts_kv_dictionary ( @@ -293,6 +293,7 @@ CREATE TABLE IF NOT EXISTS ts_kv_dictionary (
293 293
294 CREATE TABLE IF NOT EXISTS oauth2_client_registration ( 294 CREATE TABLE IF NOT EXISTS oauth2_client_registration (
295 id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, 295 id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY,
  296 + enabled boolean,
296 created_time bigint NOT NULL, 297 created_time bigint NOT NULL,
297 additional_info varchar, 298 additional_info varchar,
298 domain_name varchar(255), 299 domain_name varchar(255),
@@ -318,6 +318,7 @@ CREATE TABLE IF NOT EXISTS ts_kv_dictionary @@ -318,6 +318,7 @@ CREATE TABLE IF NOT EXISTS ts_kv_dictionary
318 318
319 CREATE TABLE IF NOT EXISTS oauth2_client_registration ( 319 CREATE TABLE IF NOT EXISTS oauth2_client_registration (
320 id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY, 320 id uuid NOT NULL CONSTRAINT oauth2_client_registration_pkey PRIMARY KEY,
  321 + enabled boolean,
321 created_time bigint NOT NULL, 322 created_time bigint NOT NULL,
322 additional_info varchar, 323 additional_info varchar,
323 domain_name varchar(255), 324 domain_name varchar(255),
@@ -86,7 +86,9 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest { @@ -86,7 +86,9 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest {
86 public void testGetOAuth2Clients() { 86 public void testGetOAuth2Clients() {
87 String testDomainName = "test_domain"; 87 String testDomainName = "test_domain";
88 OAuth2ClientRegistration first = validClientRegistration(testDomainName); 88 OAuth2ClientRegistration first = validClientRegistration(testDomainName);
  89 + first.setEnabled(true);
89 OAuth2ClientRegistration second = validClientRegistration(testDomainName); 90 OAuth2ClientRegistration second = validClientRegistration(testDomainName);
  91 + second.setEnabled(true);
90 92
91 oAuth2Service.saveOAuth2Params(OAuth2Utils.toOAuth2Params(Collections.singletonList(first))); 93 oAuth2Service.saveOAuth2Params(OAuth2Utils.toOAuth2Params(Collections.singletonList(first)));
92 oAuth2Service.saveOAuth2Params(OAuth2Utils.toOAuth2Params(Collections.singletonList(second))); 94 oAuth2Service.saveOAuth2Params(OAuth2Utils.toOAuth2Params(Collections.singletonList(second)));
@@ -153,7 +155,7 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest { @@ -153,7 +155,7 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest {
153 } 155 }
154 156
155 private OAuth2ClientRegistration validClientRegistration() { 157 private OAuth2ClientRegistration validClientRegistration() {
156 - return validClientRegistration("domainName"); 158 + return validClientRegistration(UUID.randomUUID().toString());
157 } 159 }
158 160
159 private OAuth2ClientRegistration validClientRegistration(String domainName) { 161 private OAuth2ClientRegistration validClientRegistration(String domainName) {
@@ -166,23 +168,23 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest { @@ -166,23 +168,23 @@ public class BaseOAuth2ServiceTest extends AbstractServiceTest {
166 .type(MapperType.CUSTOM) 168 .type(MapperType.CUSTOM)
167 .custom( 169 .custom(
168 OAuth2CustomMapperConfig.builder() 170 OAuth2CustomMapperConfig.builder()
169 - .url("localhost:8082") 171 + .url("UUID.randomUUID().toString()")
170 .build() 172 .build()
171 ) 173 )
172 .build() 174 .build()
173 ); 175 );
174 - clientRegistration.setClientId("clientId");  
175 - clientRegistration.setClientSecret("clientSecret");  
176 - clientRegistration.setAuthorizationUri("authorizationUri");  
177 - clientRegistration.setAccessTokenUri("tokenUri");  
178 - clientRegistration.setRedirectUriTemplate("redirectUriTemplate");  
179 - clientRegistration.setScope(Arrays.asList("scope1", "scope2"));  
180 - clientRegistration.setUserInfoUri("userInfoUri");  
181 - clientRegistration.setUserNameAttributeName("userNameAttributeName");  
182 - clientRegistration.setJwkSetUri("jwkSetUri");  
183 - clientRegistration.setClientAuthenticationMethod("clientAuthenticationMethod");  
184 - clientRegistration.setLoginButtonLabel("loginButtonLabel");  
185 - clientRegistration.setLoginButtonIcon("loginButtonIcon"); 176 + clientRegistration.setClientId(UUID.randomUUID().toString());
  177 + clientRegistration.setClientSecret(UUID.randomUUID().toString());
  178 + clientRegistration.setAuthorizationUri(UUID.randomUUID().toString());
  179 + clientRegistration.setAccessTokenUri(UUID.randomUUID().toString());
  180 + clientRegistration.setRedirectUriTemplate(UUID.randomUUID().toString());
  181 + clientRegistration.setScope(Arrays.asList(UUID.randomUUID().toString(), UUID.randomUUID().toString()));
  182 + clientRegistration.setUserInfoUri(UUID.randomUUID().toString());
  183 + clientRegistration.setUserNameAttributeName(UUID.randomUUID().toString());
  184 + clientRegistration.setJwkSetUri(UUID.randomUUID().toString());
  185 + clientRegistration.setClientAuthenticationMethod(UUID.randomUUID().toString());
  186 + clientRegistration.setLoginButtonLabel(UUID.randomUUID().toString());
  187 + clientRegistration.setLoginButtonIcon(UUID.randomUUID().toString());
186 clientRegistration.setAdditionalInfo(mapper.createObjectNode().put(UUID.randomUUID().toString(), UUID.randomUUID().toString())); 188 clientRegistration.setAdditionalInfo(mapper.createObjectNode().put(UUID.randomUUID().toString(), UUID.randomUUID().toString()));
187 return clientRegistration; 189 return clientRegistration;
188 } 190 }