Moved code from `Resteasy classic` to `Reateasy reactive` since now Quarkus uses that version of lib instead of the old one

master
Mauro Mugnaini 1 month ago
parent 761f9c17c2
commit c4f2631fd5
Signed by: mauro.mugnaini
GPG Key ID: 2440CFD0EB321EA8

@ -33,6 +33,10 @@
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-reactive</artifactId>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>

@ -1,10 +1,11 @@
package org.gcube.keycloak.avatar;
import java.io.InputStream;
import java.nio.file.Files;
import org.gcube.keycloak.avatar.storage.AvatarStorageProvider;
import org.jboss.resteasy.annotations.cache.NoCache;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
import org.jboss.resteasy.reactive.RestForm;
import org.jboss.resteasy.reactive.multipart.FileUpload;
import org.keycloak.common.ClientConnection;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
@ -62,7 +63,7 @@ public class AvatarAdminResource extends AbstractAvatarResource {
@NoCache
@Path("/{user_id}")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadUserAvatarImage(@PathParam("user_id") String userId, MultipartFormDataInput input) {
public Response uploadUserAvatarImage(@PathParam("user_id") String userId, @RestForm(AVATAR_IMAGE_PARAMETER) FileUpload image) {
try {
if (auth == null) {
return Response.status(Response.Status.UNAUTHORIZED).build();
@ -71,8 +72,7 @@ public class AvatarAdminResource extends AbstractAvatarResource {
RealmModel realm = session.getContext().getRealm();
UserModel user = session.users().getUserById(session.getContext().getRealm(), userId);
InputStream imageInputStream = input.getFormDataPart(AVATAR_IMAGE_PARAMETER, InputStream.class, null);
saveUserImage(realm, user, imageInputStream);
saveUserImage(realm, user, Files.newInputStream(image.uploadedFile()));
} catch (ForbiddenException e) {
return Response.status(Response.Status.FORBIDDEN).entity(e.getMessage()).build();
} catch (Exception e) {

@ -1,14 +1,15 @@
package org.gcube.keycloak.avatar;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.List;
import org.jboss.resteasy.annotations.cache.NoCache;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
import org.jboss.resteasy.reactive.RestForm;
import org.jboss.resteasy.reactive.multipart.FileUpload;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.keycloak.http.HttpRequest;
import org.keycloak.models.KeycloakSession;
import org.keycloak.services.resources.Cors;
import org.keycloak.services.cors.Cors;
import org.keycloak.services.resources.RealmsResource;
import jakarta.ws.rs.Consumes;
@ -74,7 +75,7 @@ public class AvatarResource extends AbstractAvatarResource {
@POST
@NoCache
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadCurrentUserAvatarImage(MultipartFormDataInput input, @Context UriInfo uriInfo) {
public Response uploadCurrentUserAvatarImage(@RestForm(AVATAR_IMAGE_PARAMETER) FileUpload image, @Context UriInfo uriInfo) {
if (auth == null) {
throw new NotAuthorizedException("Bearer");
}
@ -86,9 +87,7 @@ 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);
saveUserImage(auth.getSession().getRealm(), auth.getUser(), Files.newInputStream(image.uploadedFile()));
if (uriInfo.getQueryParameters().containsKey("account")) {
UriBuilder uriBuilder = RealmsResource.accountUrl(session.getContext().getUri().getBaseUriBuilder());

Loading…
Cancel
Save