From b18e55e6fab13050dc55119338224fd1eee96fe7 Mon Sep 17 00:00:00 2001 From: Florent CHAMFROY Date: Fri, 13 Mar 2020 12:37:49 +0100 Subject: [PATCH] fix(avatar): empty response if user has no avatar Fixes gravitee-io/issues#3330 --- .../rest/resource/CurrentUserResource.java | 9 ++------- .../api/management/rest/resource/UserResource.java | 12 ++++++------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/CurrentUserResource.java b/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/CurrentUserResource.java index 6d2671d2c1..4b160afd6a 100644 --- a/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/CurrentUserResource.java +++ b/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/CurrentUserResource.java @@ -160,18 +160,13 @@ public Response getCurrentUserPicture(@Context Request request) { String userId = userService.findById(getAuthenticatedUser()).getId(); PictureEntity picture = userService.getPicture(userId); - if (picture == null) { - throw new NotFoundException(); - } - if (picture instanceof UrlPictureEntity) { return Response.temporaryRedirect(URI.create(((UrlPictureEntity) picture).getUrl())).build(); } InlinePictureEntity image = (InlinePictureEntity) picture; - - if (image.getContent() == null) { - throw new NotFoundException(); + if (image == null || image.getContent() == null) { + return Response.ok().build(); } EntityTag etag = new EntityTag(Integer.toString(new String(image.getContent()).hashCode())); diff --git a/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/UserResource.java b/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/UserResource.java index 41b30d4880..f061737488 100644 --- a/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/UserResource.java +++ b/gravitee-rest-api-management/gravitee-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/UserResource.java @@ -144,12 +144,13 @@ public Response resetPassword(@PathParam("id") String userId) { public Response getUserAvatar(@PathParam("id") String id, @Context Request request) { PictureEntity picture = userService.getPicture(id); - if (picture == null) { - throw new NotFoundException(); - } - if (picture instanceof UrlPictureEntity) { - return Response.temporaryRedirect(URI.create(((UrlPictureEntity)picture).getUrl())).build(); + return Response.temporaryRedirect(URI.create(((UrlPictureEntity) picture).getUrl())).build(); + } + + InlinePictureEntity image = (InlinePictureEntity) picture; + if (image == null || image.getContent() == null) { + return Response.ok().build(); } CacheControl cc = new CacheControl(); @@ -158,7 +159,6 @@ public Response getUserAvatar(@PathParam("id") String id, @Context Request reque cc.setNoCache(false); cc.setMaxAge(86400); - InlinePictureEntity image = (InlinePictureEntity) picture; EntityTag etag = new EntityTag(Integer.toString(new String(image.getContent()).hashCode())); Response.ResponseBuilder builder = request.evaluatePreconditions(etag);