Jersey 我在上传文件时无法授权用户

Jersey I can't authorize the user when uploading files

在默认函数中,我可以使用 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 获取数据并同时上传文件的最佳方式是什么?

在阅读随机帖子时找到了解决方案。我发现在我的 ContainerRequestContext requestCtx 前面添加 @Context 注释解决了这个问题。

我希望我能帮助其他人解决这个问题找不到任何其他接近这个的答案。

@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) {