【问题标题】:JAX-RS access controlJAX-RS 访问控制
【发布时间】:2010-11-11 06:38:08
【问题描述】:

谁能给我一些关于 JAX-Rs Web 服务中的访问控制的建议。例如根据用户凭据、名称或任何其他标准限制访问。在 sun 手册中找不到任何有用的信息。

提前致谢, 阿迪尔

【问题讨论】:

    标签: jax-rs


    【解决方案1】:

    我个人使用 Spring 安全性来实现这一点。 Spring security 允许轻松使用各种身份验证和授权方案(例如,通过针对数据库或 LDAP 服务器检查来自 HTTP 请求的基本/摘要标头)。使用 JAX-RS 设置起来并不难,而且还有一个漂亮的基于方面的权限系统,您可以在其中执行诸如

    之类的操作

    @PreAuthorize("hasRole('ROLE_ADMIN') 或 order.customer.username == user.username) deleteOrder(订单顺序);

    确保经过身份验证的 用户 必须在 ROLE_ADMIN 组中或者是 订单 的所有者才能被允许删除它.

    配置完成后,您在 JAX-RS 资源中所要做的就是处理 Spring 的 Security 异常并采取适当的措施(通过抛出 WebApplicationExceptionhere 所述)

    【讨论】:

    • 如果我没记错的话 Spring Security 是作为一个 servlet 过滤器实现的,所以添加一个处理异常的 jax-rs 钩子可能不是那么容易。我的意思是,异常永远不会到达 JAX-RS 异常映射器。你能详细说明那部分吗?谢谢。
    【解决方案2】:

    人们有很多方法可以做到这一点,并且这个网站上有很多关于这个主题的精彩帖子(参见Best Practices for securing a REST API / web service

    我个人使用 OAuth 来完成这项任务。有关 OAuth 的更多信息,请查看Beginner’s Guide to OAuth

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多