gpt4 book ai didi

Java 8 : Functional interface to check permissions and return a response

转载 作者:行者123 更新时间:2023-11-30 02:37:20 25 4
gpt4 key购买 nike

我正在尝试创建一个函数withCheckPermissions来检查用户是否拥有权限,

  1. 如果用户未获得许可,则会返回“错误响应”
  2. 否则,如果是 POST,则返回“成功”
  3. 否则返回 GET 请求的内容

这是我到目前为止所拥有的:

  public <A extends Response> Response withCheckPermissions(Supplier<A> code) {
User user = getCurrentUser();
if (isAllowed(user)) {
try {
return code.get();
} catch (Exception e) {
return handleError(ERROR_MESSAGE, e);
}
} else {
log.warn("User not allowed...");
return sendBadRequest(NO_ACCESS_MESSAGE);
}
}

我将其称为:

  @POST
@Path("myJob")
public Response sendMail() {
return withCheckPermissions(() -> {
try {
manager.generateEmail();
} catch (Exception e) {
return handleError("Problem sending email", e);
}
return sendSuccess();
});
}

我收到如下错误:

Could not find MessageBodyWriter for response object of type: java.util.HashMap of media type: application/octet-stream

有合适的方法吗?

我试图避免这样的构造:

if isAllowed(User) {
doSomething()
} else {
return errorResponse
}

最佳答案

由于您没有定义端点生成的媒体类型,因此该类型将为“application/octet-stream”,除非您在请求 header 中告知它(Accept =“text/plain”)。

将 @Produces(MediaType.TEXT_PLAIN) 放入您的方法中并尝试,应该可以工作。

关于Java 8 : Functional interface to check permissions and return a response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42707404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com