Джерси. Я не могу авторизовать пользователя при загрузке файлов.
В функциях по умолчанию я могу использовать ContainerRequestContext requestCtx
получить защитный текст и имя пользователя из запроса.
Но по какой-то причине при использовании этого в функции, которая потребляет MediaType.MULTIPART_FORM_DATA
Я получаю эту ошибку:
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
Код:
@POST
@Path("{albumcode}")
@RolesAllowed("user")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadPicture(@PathParam("code") String code,
FormDataMultiPart multipart,
ContainerRequestContext requestCtx) {
Без ContainerRequestContext requestCtx
код сверху работает просто отлично.
Какой лучший способ получить данные из моего ContainerRequestContext
а также возможность загружать файлы одновременно?
1 ответ
Нашел решение при чтении через случайные посты. Я узнал, что добавление @Context
аннотация перед моим ContainerRequestContext requestCtx
решил проблему.
Я надеюсь, что смогу помочь кому-то еще с этой проблемой, не могли найти другие ответы, близкие к этому
@POST
@Path("{albumcode}")
@RolesAllowed("user")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadPicture(@PathParam("code") String code,
FormDataMultiPart multipart,
@Context ContainerRequestContext requestCtx) {