use of io.gravitee.rest.api.model.configuration.application.registration.NewClientRegistrationProviderEntity in project gravitee-management-rest-api by gravitee-io.
the class ClientRegistrationProvidersResourceTest method shouldCreateSubscription.
@Test
public void shouldCreateSubscription() {
reset(clientRegistrationService);
NewClientRegistrationProviderEntity newClientRegistrationProviderEntity = new NewClientRegistrationProviderEntity();
newClientRegistrationProviderEntity.setName("my-client-registration-provider-name");
newClientRegistrationProviderEntity.setDiscoveryEndpoint("my-client-registration-provider-discovery-endpoint");
newClientRegistrationProviderEntity.setInitialAccessTokenType(InitialAccessTokenType.INITIAL_ACCESS_TOKEN);
newClientRegistrationProviderEntity.setInitialAccessToken("my-client-registration-provider-initial-access-token");
ClientRegistrationProviderEntity createdClientRegistrationProvider = new ClientRegistrationProviderEntity();
createdClientRegistrationProvider.setId("my-client-registration-provider-id");
when(clientRegistrationService.create(any())).thenReturn(createdClientRegistrationProvider);
final Response response = envTarget().request().post(Entity.json(newClientRegistrationProviderEntity));
assertEquals(CREATED_201, response.getStatus());
assertEquals(envTarget().path("my-client-registration-provider-id").getUri().toString(), response.getHeaders().getFirst(HttpHeaders.LOCATION));
}
use of io.gravitee.rest.api.model.configuration.application.registration.NewClientRegistrationProviderEntity in project gravitee-management-rest-api by gravitee-io.
the class ClientRegistrationServiceImpl method create.
@Override
public ClientRegistrationProviderEntity create(NewClientRegistrationProviderEntity newClientRegistrationProvider) {
try {
LOGGER.debug("Create client registration provider {}", newClientRegistrationProvider);
Set<ClientRegistrationProviderEntity> clientRegistrationProviders = this.findAll();
// For now, we are supporting only a single client registration provider.
if (clientRegistrationProviders.size() == 1) {
throw new IllegalStateException("Until now, supports only a single client registration provider. " + "Please update the existing one: " + clientRegistrationProviders.iterator().next().getName());
}
Optional<ClientRegistrationProvider> optClientRegistrationProvider = clientRegistrationProviderRepository.findById(IdGenerator.generate(newClientRegistrationProvider.getName()));
if (optClientRegistrationProvider.isPresent()) {
throw new ClientRegistrationProviderAlreadyExistsException(newClientRegistrationProvider.getName());
}
if (newClientRegistrationProvider.getInitialAccessTokenType() == InitialAccessTokenType.INITIAL_ACCESS_TOKEN && (newClientRegistrationProvider.getInitialAccessToken() == null || newClientRegistrationProvider.getInitialAccessToken().isEmpty())) {
throw new EmptyInitialAccessTokenException();
}
ClientRegistrationProvider clientRegistrationProvider = convert(newClientRegistrationProvider);
// Check renew_client_secret configuration
renewClientSecretSupport(clientRegistrationProvider);
clientRegistrationProvider.setId(UuidString.generateRandom());
DynamicClientRegistrationProviderClient registrationProviderClient = getDCRClient(true, convert(clientRegistrationProvider));
// Ensure that the client credentials are valid
registrationProviderClient.getInitialAccessToken();
LOGGER.debug("Found a DCR Client for provider: {}", clientRegistrationProvider.getName(), registrationProviderClient);
// Set date fields
clientRegistrationProvider.setCreatedAt(new Date());
clientRegistrationProvider.setUpdatedAt(clientRegistrationProvider.getCreatedAt());
ClientRegistrationProvider createdClientRegistrationProvider = clientRegistrationProviderRepository.create(clientRegistrationProvider);
auditService.createEnvironmentAuditLog(singletonMap(CLIENT_REGISTRATION_PROVIDER, createdClientRegistrationProvider.getId()), ClientRegistrationProvider.AuditEvent.CLIENT_REGISTRATION_PROVIDER_CREATED, createdClientRegistrationProvider.getUpdatedAt(), null, createdClientRegistrationProvider);
return convert(createdClientRegistrationProvider);
} catch (TechnicalException ex) {
LOGGER.error("An error occurs while trying to create client registration provider {}", newClientRegistrationProvider, ex);
throw new TechnicalManagementException("An error occurs while trying to create " + newClientRegistrationProvider, ex);
}
}
Aggregations