Extra parameters present in request URI where lost for "account" related changes

This commit is contained in:
Mauro Mugnaini 2020-12-16 16:16:19 +01:00
parent 29ac081aeb
commit b22b405b41
1 changed files with 11 additions and 7 deletions

View File

@ -13,6 +13,7 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriInfo;
import org.jboss.resteasy.annotations.cache.NoCache;
@ -62,22 +63,25 @@ public class AvatarResource extends AbstractAvatarResource {
}
logger.debugf("Uploading new avatar for user %s in realm %s", auth.getUser(), auth.getSession().getRealm());
Response response = null;
try {
InputStream imageInputStream = input.getFormDataPart(AVATAR_IMAGE_PARAMETER, InputStream.class, null);
saveUserImage(auth.getSession().getRealm(), auth.getUser(), imageInputStream);
if (uriInfo.getQueryParameters().containsKey("account")) {
return Response.seeOther(
RealmsResource.accountUrl(session.getContext().getUri().getBaseUriBuilder())
.build(auth.getSession().getRealm().getName())).build();
UriBuilder uriBuilder = RealmsResource.accountUrl(session.getContext().getUri().getBaseUriBuilder());
for (String parameterName : uriInfo.getQueryParameters().keySet()) {
uriBuilder.queryParam(parameterName, uriInfo.getQueryParameters().get(parameterName));
}
response = Response.seeOther(uriBuilder.build(auth.getSession().getRealm().getName())).build();
} else {
response = Response.ok().build();
}
return Response.ok().build();
} catch (Exception ex) {
return Response.serverError().build();
response = Response.serverError().build();
}
return response;
}
private boolean isValidStateChecker(MultipartFormDataInput input) {