我在 Glassfish 上使用 JAX-RS 来实现一组资源,这些资源只能由特定用户访问。
考虑两个用户,userA 和 userB,他们都在我的网站中注册。
- userA 创建了自己的资源
http://{localhost}/service/user/A
; - userB 创建了自己的资源
http://{localhost}/service/user/B
;
然后 Glassfish 的默认安全实现配置为:
- 用户角色可以访问
/services/user/*
- userA 和 userB 均属于用户角色。
因此,登录后,userA 和 userB 都可以访问 /service/user/A
和 /service/user/B
。
现在的问题是, 有没有可能
- userA 只能访问
/services/user/A
,但不能访问/services/user/B
同时
- userB 只能访问
/services/user/B,但不能访问
/services/user/A`
我想我一定错过了一些东西,因为我相信这是一个普遍的需求。 有人可以帮忙吗?
最佳答案
这是您必须在应用程序级别实现的东西。应用程序服务器无法了解您的安全策略,这可能非常复杂。您可以自己完成(在用户资源中添加逻辑),如果您的安全策略很简单,这可能是正确的方法。否则,您应该考虑 Spring Security,它可以与 JAX-RS 集成。这将为您提供很大的灵 active 。
关于security - JAX-RS,如何阻止用户A访问用户B的restful资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071295/