如何在jax-rs rest服务中实现基于用户的自定义授权?

时间:2015-02-26 23:07:23

标签: java rest authorization jax-rs

这个tutorial解释了如何使用jax-rs进行角色授权。

我正在寻找用户级授权。例如,对于某些方法,例如删除或编辑或访问个人用户信息,只有作为该信息所有者的用户才能访问这些资源。实现这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

在JAX-RS服务前使用XACML和JAX-RS策略执行点。

XACML是可扩展的访问控制标记语言。 XACML帮助您实现的目标是:

  • 基于属性的访问控制,其中属性只是键值对。属性可以是用户ID,资源所有者,一天中的时间,操作......
  • 外部授权:将JAX-RS服务中的业务逻辑与现在在称为策略决策点(PDP)的中心点表示的授权逻辑分离
  • 基于策略:授权逻辑在PDP内表示为使用先前定义的属性的策略。例如:
    • 如果document.owner == user.id
    • ,具有role ==编辑器的用户可以对文档执行操作==编辑

您可以在此处阅读有关XACML和ABAC的更多信息:

您需要在要保护的JAX-RS服务之前部署拦截器(策略执行点)。