gpt4 book ai didi

rest - 将 spring security 3 与 jersey rest api 相结合

转载 作者:行者123 更新时间:2023-12-04 08:28:47 26 4
gpt4 key购买 nike

我有一个场景,我试图将 spring 安全性与 jersey 结合起来用于我的 REST API。

我的需求相当复杂(我认为),如下所示:

Spring security 被用于拦截 url 并强制进行基本身份验证以访问 REST 资源。这似乎没问题,因为我正在使用 http 客户端进行测试。

但是,我想要做的是以某种方式访问​​加载的用户对象以检查挂起用户的一些附加权限(带有 bool 标志的 map 对象,以指示对象属性是否可见)。加载的代码有效,但是在 spring 验证之后,我如何在实际的 REST Resource 方法本身中访问 User 对象?这可能吗?

所以步骤是:

1) 客户端进行 REST API 调用
2) Spring 拦截 URL 检查 http header 中提供的用户名和密码
3) 如果存在有效凭据,则访问其余资源方法

但是在第 3 步之前,我想以某种方式将加载的 User 对象传递给实际的 Resource 方法本身,这样我就可以进一步应用一些逻辑来根据我加载的权限限制用户可以看到的内容???这可能吗?我想我已经在某处看到了一些代码,这些代码在使用 Spring 和 REST 访问方法之前检查用户角色,但是如果有人有任何链接或想法会很好。

如果可以的话请帮忙。太感谢了。

最佳答案

我通过使用由 bean 工厂构建的请求范围代理解决了这个问题。

这使您可以简单地将当前经过身份验证的用户注入(inject)任何 Spring 托管 bean,在我的例子中,我的 Jersey Resources 属于该类别。我将我的用户注入(inject)到资源下面的层中,但都是一样的。

Someone else elegantly blogged the full solution here.

关于rest - 将 spring security 3 与 jersey rest api 相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988447/

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