Skip to content
This repository has been archived by the owner on Aug 20, 2021. It is now read-only.

Commit

Permalink
fix(application): Set the client_id when updating a DCR application
Browse files Browse the repository at this point in the history
  • Loading branch information
brasseld authored and tcompiegne committed Mar 16, 2020
1 parent d0c4c32 commit 08cd52d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
Expand Up @@ -287,7 +287,10 @@ public ClientRegistrationResponse register(NewApplicationEntity application) {
provider);

ClientRegistrationRequest clientRegistrationRequest = convert(application);
clientRegistrationRequest.setSoftwareId(provider.getSoftwareId());

if (provider.getSoftwareId() != null && ! provider.getSoftwareId().isEmpty()) {
clientRegistrationRequest.setSoftwareId(provider.getSoftwareId());
}

return registrationProviderClient.register(clientRegistrationRequest);
}
Expand Down Expand Up @@ -363,7 +366,8 @@ public ClientRegistrationResponse update(String previousRegistrationResponse, Up
return registrationProviderClient.update(
registrationResponse.getRegistrationAccessToken(),
registrationResponse.getRegistrationClientUri(),
convert(registrationRequest, application));
convert(registrationRequest, application),
application.getSettings().getoAuthClient().getClientId());
} catch (Exception ex) {
LOGGER.error("Unexpected error while updating a client", ex);
return null;
Expand Down
Expand Up @@ -101,22 +101,27 @@ protected ClientRegistrationResponse register(String initialAccessToken, ClientR
}
}

public ClientRegistrationResponse update(String registrationAccessToken, String registrationClientUri, ClientRegistrationRequest request) {
public ClientRegistrationResponse update(String registrationAccessToken,
String registrationClientUri,
ClientRegistrationRequest request,
String clientId) {
HttpPut updateRequest = new HttpPut(registrationClientUri);

updateRequest.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + registrationAccessToken);
updateRequest.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);

try {
JsonNode reqNode = mapper.readTree(mapper.writeValueAsString(request));

// Set the client_id according to https://tools.ietf.org/html/rfc7592#page-7
((ObjectNode) reqNode).put("client_id", clientId);

if (request.getScope() != null && !request.getScope().isEmpty()) {
((ObjectNode) reqNode).put("scope", String.join(ClientRegistrationRequest.SCOPE_DELIMITER, request.getScope()));
} else {
((ObjectNode) reqNode).remove("scope");
}

// ((ObjectNode) reqNode).put("client_id", "0d7be850-e1ac-4d7a-9cf3-4f1ebd2c4ccb");

updateRequest.setEntity(new StringEntity(
mapper.writeValueAsString(reqNode),
ContentType.create(MediaType.APPLICATION_JSON, Charset.defaultCharset())));
Expand Down

0 comments on commit 08cd52d

Please sign in to comment.