小编Sha*_*mar的帖子

订阅设计模式:春天

我正在使用spring,spring security,hibernate和Oauth构建基于云的应用程序.

  • 它有不同的产品,每个产品都有多个模块.模块还具有多种功能.
  • 客户必须独立订阅每个产品才能使用它们
  • 每个客户端都可以拥有多个用户,客户端必须提供访问其用户产品的权限.

  • 订阅每个产品时,客户必须选择包(银,金,..)

  • 包将具有模块详细信息,并且每个产品都不允许用户,并且客户端用户将只能访问客户订阅和用户有权访问的模块(选定包).

我必须为每个功能创建Rest Api.

问题:我使用Spring Oauth2来保护我的API,所以只有注册的客户端和他们的用户可以访问它们,但他们可以访问所有的API.我应该允许客户端只访问它有权访问/订阅的那些API.我怎样才能在Spring中实现这一目标?

目前我打算使用感知器,但它在很大程度上取决于URL模式.因此,对于每个产品和模块,我将使用不同的拦截器

网址格式:http:// abc/rest/PRODUCT/MODULE/..

有没有更好的方法来实现它?

spring design-patterns spring-mvc subscriptions struts2-interceptors

3
推荐指数
1
解决办法
395
查看次数

交叉申请提供缺少关键字错误

以下查询给出了缺少的关键字错误..

select * 
  from its_account aac 
 CROSS APPLY its.fnGetAccountIdentifier(aac.account_key) ;
Run Code Online (Sandbox Code Playgroud)

这是我的功能:

create or replace FUNCTION fnGetAccountIdentifier
(
  v_AccountKey IN NUMBER
)
RETURN fnGetAccountIdentifier_pkg.tt_fnGetAccountIdentifier_type PIPELINED
AS
   v_temp SYS_REFCURSOR;
   v_temp_1 TT_FNGETACCOUNTIDENTIFIER%ROWTYPE;

BEGIN
   OPEN v_temp FOR
      SELECT * 
        FROM tt_fnGetAccountIdentifier;

   LOOP
      FETCH v_temp INTO v_temp_1;
      EXIT WHEN v_temp%NOTFOUND;
      PIPE ROW ( v_temp_1 );
   END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)

我不知道我在哪里做错了.我真的很陌生.

oracle plsql cross-apply

1
推荐指数
1
解决办法
2412
查看次数