【发布时间】:2017-02-07 06:48:25
【问题描述】:
我正在使用 spring、spring security、hibernate 和 Oauth 构建基于云的应用程序。
- 它有不同的产品,每个产品都有多个 模块。模块还具有多种功能。
- 客户必须单独订阅每个产品才能使用它们
每个客户端可以有多个用户,并且客户端必须为其用户提供对产品的访问权限。
客户在订阅时必须选择包(银、金、..) 每个产品
包将包含每个产品的模块详细信息和用户数,并且客户端用户将是 只能访问客户端所在的模块(选定的包) 已订阅且用户有权访问。
我必须为每个功能创建 Rest Api。
问题:我正在使用 Spring Oauth2 来保护我的 API,因此只有注册的客户端及其用户可以访问它们,但他们可以访问所有 API。我应该只允许客户端访问它的那些 API有权访问/订阅。我如何在 Spring 中实现这一目标?
目前我正计划使用拦截器,但它高度依赖于 URL 模式。因此,对于每个产品和模块,我将拥有不同的拦截器
网址格式:http://abc/rest/PRODUCT/MODULE/..
有没有更好的方法来实现它?
【问题讨论】:
标签: spring spring-mvc design-patterns subscriptions struts2-interceptors