【问题标题】:combining spring security 3 with jersey rest api将 spring security 3 与 jersey rest api 相结合
【发布时间】:2011-12-20 18:24:48
【问题描述】:

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

我的需求比较复杂(我认为),如下:

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

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

所以步骤是:

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

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

如果可以,请提供帮助。非常感谢。

【问题讨论】:

    标签: rest spring-security jersey


    【解决方案1】:

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

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

    Someone else elegantly blogged the full solution here.

    【讨论】:

    • 感谢@Derek troy-West。找到出色的答案,这就是我所做的。
    猜你喜欢
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2018-02-02
    • 2011-05-28
    • 2017-09-16
    • 2020-11-02
    相关资源
    最近更新 更多