【发布时间】:2010-11-11 06:38:08
【问题描述】:
谁能给我一些关于 JAX-Rs Web 服务中的访问控制的建议。例如根据用户凭据、名称或任何其他标准限制访问。在 sun 手册中找不到任何有用的信息。
提前致谢, 阿迪尔
【问题讨论】:
标签: jax-rs
谁能给我一些关于 JAX-Rs Web 服务中的访问控制的建议。例如根据用户凭据、名称或任何其他标准限制访问。在 sun 手册中找不到任何有用的信息。
提前致谢, 阿迪尔
【问题讨论】:
标签: jax-rs
我个人使用 Spring 安全性来实现这一点。 Spring security 允许轻松使用各种身份验证和授权方案(例如,通过针对数据库或 LDAP 服务器检查来自 HTTP 请求的基本/摘要标头)。使用 JAX-RS 设置起来并不难,而且还有一个漂亮的基于方面的权限系统,您可以在其中执行诸如
之类的操作@PreAuthorize("hasRole('ROLE_ADMIN') 或 order.customer.username == user.username) deleteOrder(订单顺序);
确保经过身份验证的 用户 必须在 ROLE_ADMIN 组中或者是 订单 的所有者才能被允许删除它.
配置完成后,您在 JAX-RS 资源中所要做的就是处理 Spring 的 Security 异常并采取适当的措施(通过抛出 WebApplicationException 如here 所述)
【讨论】:
人们有很多方法可以做到这一点,并且这个网站上有很多关于这个主题的精彩帖子(参见Best Practices for securing a REST API / web service)
我个人使用 OAuth 来完成这项任务。有关 OAuth 的更多信息,请查看Beginner’s Guide to OAuth
【讨论】: