1
我試圖創建一個函數withCheckPermissions
,檢查用戶是否有權限,的Java 8:功能界面,檢查權限和返回響應
- 如果用戶沒有permission'd返回一個「壞響應「
- 否則返回一個‘成功’,如果它是一個POST
- 否則返回一個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
}
看起來不錯。我不明白爲什麼錯誤會有關係。 – shmosel
您收到的錯誤與您檢查權限的方式無關。 –
你的方法可能應該返回'A'而不是'Response'。否則,參數是不必要的。 – shmosel