gpt4 book ai didi

java - Jersey 的动态实例级授权(基于 id)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:09 24 4
gpt4 key购买 nike

抱歉,我刚接触 Jersey 。我一直在尝试找到一种使用 Jersey 资源获得实例级访问授权的方法,但我看到的最精细的是角色或静态实例级权限。我有点疑惑,因为它

为了更好地描述我的意思:假设一个用户拥有一组 Post 资源 - 大概这个用户具有作者角色。不过,我不希望作为作者的每个用户都能够修改每个帖子。控制它的最简单方法是什么?

这是在资源类方法中处理的那种授权吗?我应该创建自定义授权过滤器吗?如果是这样,那里有这样的例子吗?我有点困惑,因为它看起来像是一个常见的用例。

谢谢!

最佳答案

这里没有太多示例的原因是关于如何处理它可能取决于您自己的数据模型。

举个简单的例子,如果每个帖子都有一个所有者,那么你的资源可能看起来像这样:

@PUT
@Path("{id: [A-Fa-f0-9]+}")
@Consumes(MediaType.APPLICATION_JSON)
public T update(@Context HttpServletRequest request, final T item, @PathParam("id") final String id)
{
final Post post = getPostbyId(id);
if (!post.allowedToUpdate(request.getUserPrincipal())
{
throw new UnauthorizedException();
}
// Authorized, carry on
}

这个主题的变化是无穷无尽的,但是如果你正在做资源级别的授权,你可能想用这样的方式来做,你在给定 ID 的情况下获取资源,然后决定用户是否是授权执行请求的操作。

关于java - Jersey 的动态实例级授权(基于 id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204109/

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