public void addClientDetails(ClientDetails clientDetails) throws ClientAlreadyExistsException { try { jdbcTemplate.update(insertClientDetailsSql, getFields(clientDetails)); } catch (DuplicateKeyException e) { throw new ClientAlreadyExistsException("Client already exists: " + clientDetails.getClientId(), e); } }
@ExceptionHandler(ClientAlreadyExistsException.class) public ResponseEntity<InvalidClientDetailsException> handleClientAlreadyExists(ClientAlreadyExistsException e) { return new ResponseEntity<>(new InvalidClientDetailsException(e.getMessage()), HttpStatus.CONFLICT); }
@Override public void addClientDetails(ClientDetails clientDetails, String zoneId) throws ClientAlreadyExistsException { try { jdbcTemplate.update(DEFAULT_INSERT_STATEMENT, getInsertClientDetailsFields(clientDetails, zoneId)); } catch (DuplicateKeyException e) { throw new ClientAlreadyExistsException("Client already exists: " + clientDetails.getClientId(), e); } }
@ExceptionHandler(ClientAlreadyExistsException.class) public ResponseEntity<InvalidClientDetailsException> handleClientAlreadyExists(ClientAlreadyExistsException e) { incrementErrorCounts(e); return new ResponseEntity<>(new InvalidClientDetailsException(e.getMessage()), HttpStatus.CONFLICT); }
@Test public void testHandleClientAlreadyExists() throws Exception { ResponseEntity<InvalidClientDetailsException> result = endpoints .handleClientAlreadyExists(new ClientAlreadyExistsException("No such client: foo")); assertEquals(HttpStatus.CONFLICT, result.getStatusCode()); }
logger.debug(e.getMessage());
@Test public void testOverrideClientWithEmptySecret() throws Exception { ClientMetadataProvisioning clientMetadataProvisioning = mock(ClientMetadataProvisioning.class); bootstrap.setClientMetadataProvisioning(clientMetadataProvisioning); BaseClientDetails foo = new BaseClientDetails("foo", "", "openid", "client_credentials,password", "uaa.none"); foo.setClientSecret("secret"); clientRegistrationService.addClientDetails(foo); reset(clientRegistrationService); Map<String, Object> map = new HashMap<>(); map.put("secret", null); map.put("override", true); map.put("authorized-grant-types", "client_credentials"); bootstrap.setClients(Collections.singletonMap("foo", map)); when(clientMetadataProvisioning.update(any(ClientMetadata.class), anyString())).thenReturn(new ClientMetadata()); doThrow(new ClientAlreadyExistsException("Planned")) .when(clientRegistrationService).addClientDetails(any(ClientDetails.class), anyString()); bootstrap.afterPropertiesSet(); verify(clientRegistrationService, times(1)).addClientDetails(any(ClientDetails.class), anyString()); ArgumentCaptor<ClientDetails> captor = ArgumentCaptor.forClass(ClientDetails.class); verify(clientRegistrationService, times(1)).updateClientDetails(captor.capture(), anyString()); verify(clientRegistrationService, times(1)).updateClientSecret("foo", "", IdentityZoneHolder.get().getId()); assertEquals(new HashSet(Arrays.asList("client_credentials")), captor.getValue().getAuthorizedGrantTypes()); }
@Test public void testOverrideClient() throws Exception { ClientMetadataProvisioning clientMetadataProvisioning = mock(ClientMetadataProvisioning.class); bootstrap.setClientMetadataProvisioning(clientMetadataProvisioning); BaseClientDetails foo = new BaseClientDetails("foo", "", "openid", "client_credentials,password", "uaa.none"); foo.setClientSecret("secret"); clientRegistrationService.addClientDetails(foo); reset(clientRegistrationService); Map<String, Object> map = new HashMap<>(); map.put("secret", "bar"); map.put("override", true); map.put("authorized-grant-types", "client_credentials"); bootstrap.setClients(Collections.singletonMap("foo", map)); when(clientMetadataProvisioning.update(any(ClientMetadata.class), anyString())).thenReturn(new ClientMetadata()); doThrow(new ClientAlreadyExistsException("Planned")) .when(clientRegistrationService).addClientDetails(any(ClientDetails.class), anyString()); bootstrap.afterPropertiesSet(); verify(clientRegistrationService, times(1)).addClientDetails(any(ClientDetails.class), anyString()); ArgumentCaptor<ClientDetails> captor = ArgumentCaptor.forClass(ClientDetails.class); verify(clientRegistrationService, times(1)).updateClientDetails(captor.capture(), anyString()); verify(clientRegistrationService, times(1)).updateClientSecret("foo", "bar", IdentityZoneHolder.get().getId()); assertEquals(new HashSet(Arrays.asList("client_credentials")), captor.getValue().getAuthorizedGrantTypes()); }
@Test public void testOverrideClientByDefault() throws Exception { ClientMetadataProvisioning clientMetadataProvisioning = mock(ClientMetadataProvisioning.class); bootstrap.setClientMetadataProvisioning(clientMetadataProvisioning); BaseClientDetails foo = new BaseClientDetails("foo", "", "openid", "client_credentials,password", "uaa.none"); foo.setClientSecret("secret"); clientRegistrationService.addClientDetails(foo); reset(clientRegistrationService); Map<String, Object> map = new HashMap<>(); map.put("secret", "bar"); map.put("redirect-uri", "http://localhost/callback"); map.put("authorized-grant-types","client_credentials"); bootstrap.setClients(Collections.singletonMap("foo", map)); when(clientMetadataProvisioning.update(any(ClientMetadata.class), anyString())).thenReturn(new ClientMetadata()); doThrow(new ClientAlreadyExistsException("Planned")).when(clientRegistrationService) .addClientDetails( any(ClientDetails.class), anyString() ); bootstrap.afterPropertiesSet(); verify(clientRegistrationService, times(1)).addClientDetails(any(ClientDetails.class), anyString()); verify(clientRegistrationService, times(1)).updateClientDetails(any(ClientDetails.class), anyString()); verify(clientRegistrationService, times(1)).updateClientSecret("foo", "bar", IdentityZoneHolder.get().getId()); }
doThrow(new ClientAlreadyExistsException("Planned")).when(clientRegistrationService).addClientDetails( any(ClientDetails.class), anyString()); bootstrap.afterPropertiesSet();
public void addClientDetails(ClientDetails clientDetails) throws ClientAlreadyExistsException { try { jdbcTemplate.update(insertClientDetailsSql, getFields(clientDetails)); } catch (DuplicateKeyException e) { throw new ClientAlreadyExistsException("Client already exists: " + clientDetails.getClientId(), e); } }
public void addClientDetails(ClientDetails clientDetails) throws ClientAlreadyExistsException { try { this.jdbcTemplate.update(this.insertClientDetailsSql, this.getFields(clientDetails)); } catch (DuplicateKeyException var3) { throw new ClientAlreadyExistsException("Client already exists: " + clientDetails.getClientId(), var3); } }
@Override public void addClientDetails(ClientDetails clientDetails) throws ClientAlreadyExistsException { if(applicationRepository.findByClientId(clientDetails.getClientId()).isPresent()){ throw new ClientAlreadyExistsException("The client already exists"); } applicationRepository.save(clientDetails); }
@Transactional(rollbackFor = Exception.class) @CachePut(value = OAUTH_CLINET_DETAILS_CACHE, key = "#clientDetails.clientId") public ClientDetails addClientDetailsWithCache(ClientDetails clientDetails) throws ClientAlreadyExistsException { if (this.clientService.findOneByColumn("client_id", clientDetails.getClientId()) != null) { throw new ClientAlreadyExistsException("Client ID already exists"); } Client client = Client.builder() .clientId(clientDetails.getClientId()) .clientSecret(clientDetails.getClientSecret()) .accessTokenValiditySeconds(clientDetails.getAccessTokenValiditySeconds()) .refreshTokenValiditySeconds(clientDetails.getRefreshTokenValiditySeconds()).build(); client.setGrantType(clientDetails.getAuthorizedGrantTypes().stream().collect(Collectors.joining(","))); client.setRedirectUri(clientDetails.getRegisteredRedirectUri().stream().collect(Collectors.joining(","))); clientService.insert(client); List<Scope> clientScopes = clientDetails.getScope().stream().map(scope -> Scope.builder().clientId(client.getId()).autoApprove(false).scope(scope).build()).collect(Collectors.toList()); this.scopeService.insertBatch(clientScopes); return clientDetails; }