security - JAX-RS,如何阻止用户A访问用户B的restful资源

标签 security rest authorization jax-rs glassfish-3

我在 Glassfish 上使用 JAX-RS 来实现一组资源,这些资源只能由特定用户访问。

考虑两个用户,userA 和 userB,他们都在我的网站中注册。

  1. userA 创建了自己的资源http://{localhost}/service/user/A;
  2. userB 创建了自己的资源http://{localhost}/service/user/B;

然后 Glassfish 的默认安全实现配置为:

  1. 用户角色可以访问 /services/user/*
  2. 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/

相关文章:

ruby-on-rails - 如果 Pundit 未授权显示操作,则重定向到特定 View

asp.net - 如何在 ASP.NET 中阻止 IP 地址或 IP 类别

windows - Windows 上的 Node.js 恢复

rest - PUT 请求主体是否必须包含整个实体?

security - JACC 提供程序如何使用其部署的服务器的主体到角色映射功能?

node.js - REST API - 如何实现用户特定授权?

c# - 您会建议 Google Analytic 在您的 Web App Application Admin 部分中跟踪用户事件吗?

ios - iOS 10.3 中证书透明度的 Cordova SSL 错误

php - 如何伪造 $_SERVER ['REMOTE_ADDR' ] 变量?

python - REST API 项目的文档