private Response putResourceImpl(Response.Status status, String authorization, String rsid, UmaResource resource) throws IOException {
log.trace("putResourceImpl, rsid: {}, status:", rsid, status.name());
AuthorizationGrant authorizationGrant = umaValidationService.assertHasProtectionScope(authorization);
umaValidationService.validateResource(resource);
String userDn = authorizationGrant.getUserDn();
String clientDn = authorizationGrant.getClientDn();
final String resourceDn;
if (status == Response.Status.CREATED) {
resourceDn = addResource(rsid, resource, userDn, clientDn);
} else {
umaValidationService.validateRestrictedByClient(clientDn, rsid);
resourceDn = updateResource(rsid, resource);
}
org.xdi.oxauth.model.uma.persistence.UmaResource ldapUpdatedResource = resourceService.getResourceByDn(resourceDn);
UmaResourceResponse response = new UmaResourceResponse();
response.setId(ldapUpdatedResource.getId());
return Response.status(status).
type(MediaType.APPLICATION_JSON_TYPE).
entity(ServerUtil.asJson(response)).
build();
}