将 Spring Security 3 与 Jersey Rest API 结合起来

2024-04-01

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

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

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

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

所以步骤是:

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

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

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


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

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

其他人在这里优雅地发布了完整的解决方案。 http://theodoreyoung.wordpress.com/2011/04/21/spring-request-scope/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Spring Security 3 与 Jersey Rest API 结合起来 的相关文章

随机推荐