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.Context;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriInfo; import javax.ws.rs.core.UriInfo;
import org.jboss.resteasy.annotations.cache.NoCache; 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()); logger.debugf("Uploading new avatar for user %s in realm %s", auth.getUser(), auth.getSession().getRealm());
Response response = null;
try { try {
InputStream imageInputStream = input.getFormDataPart(AVATAR_IMAGE_PARAMETER, InputStream.class, null); InputStream imageInputStream = input.getFormDataPart(AVATAR_IMAGE_PARAMETER, InputStream.class, null);
saveUserImage(auth.getSession().getRealm(), auth.getUser(), imageInputStream); saveUserImage(auth.getSession().getRealm(), auth.getUser(), imageInputStream);
if (uriInfo.getQueryParameters().containsKey("account")) { if (uriInfo.getQueryParameters().containsKey("account")) {
return Response.seeOther( UriBuilder uriBuilder = RealmsResource.accountUrl(session.getContext().getUri().getBaseUriBuilder());
RealmsResource.accountUrl(session.getContext().getUri().getBaseUriBuilder()) for (String parameterName : uriInfo.getQueryParameters().keySet()) {
.build(auth.getSession().getRealm().getName())).build(); 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) { } catch (Exception ex) {
return Response.serverError().build(); response = Response.serverError().build();
} }
return response;
} }
private boolean isValidStateChecker(MultipartFormDataInput input) { private boolean isValidStateChecker(MultipartFormDataInput input) {