【发布时间】:2013-12-30 15:42:11
【问题描述】:
首先我想稍微提一下架构。
我们有一个 UI 应用程序,它对所有操作和用例使用 REST api。 UI 应用程序使用凭据来调用 REST api,因为还有其他非 UI 应用程序使用相同的服务。
我们使用 Spring Security 对 REST api 应用程序进行身份验证和授权。实际上整个应用程序从上到下都使用了 Spring 组合。
对于 UI 应用程序上的操作的身份验证和授权,我们还使用 Spring Security。我们保护 url 并仅显示当前登录的用户被授权执行的操作。
这是新的要求:一些已登录的用户会看到有限制的资源。这意味着相同的资源会显示更少的字段或更少的可更新字段。
四处探索,我们缩小到两种方法:
- 对每个受限访问使用不同的表示。基于一些 HTTP 标头集并为客户端所知。
- 为每个受限访问使用不同的资源。
如果资源表示组合太多,不同的资源对象可能难以维护。可以实现基于 HTTP 标头的自动限制器方面。客户端还提供了一些标头,这给客户端增加了一些复杂性。
如果组合不是太多,则会为每个受限访问创建一个新资源。客户必须在正确的时间打电话给正确的人。这种方法可以揭示隐藏的领域概念,因为新资源和设计可能看起来更干净。
你的想法是什么?你会采取哪种方法?
【问题讨论】:
标签: rest spring-mvc