【发布时间】:2016-03-23 15:26:46
【问题描述】:
我正在使用 RAML 创建一个 Web 服务 API。
我创建了具有两种安全方案的 RAML
- OAuth 2.0
- 自定义
我的第一种方法是根据请求参数处理授权,我在请求中发送一个特殊参数,然后将授权任务委托给任一授权引擎。但它不起作用,当向 OAuth 服务器发出请求时,它抛出了Null Pointer Exception。
然后我才知道不同授权方案的授权请求应该有不同的 URI,例如如果发出了 oAuth 请求,则 URI 应该类似于 /api/oauth2/authorize?parameters 而对于其他方案来说,oauth 1.0 可以是 /api/oauth1/authorize?parameters
为了实现这一点,我添加了两个具有不同 URI 模式的 APIkit 路由器流。
附图中的第一个 APIKit 流程用于自定义授权,第二个用于 OAuth。从图中可以看出,我在第二个流程中的 APIkit 路由器之前添加了 OAuth 验证器。
我想知道将 OAuth 验证器放在那个地方是否是正确的方法,以便可以对每个请求进行身份验证?或者 OAuth 验证器应该是每个资源流的第一个元素,以便在发出请求后 OAuth 验证对单个资源的请求。我还在某处读到过,在 OAuth 中,首先对请求进行身份验证,然后允许访问受保护的资源,在这种情况下,我猜我在 APIKit 路由器之前添加 OAuth 验证器的方法是正确的。但是,我对此不确定,并希望在整个场景中获得第二个建议。
谢谢。
【问题讨论】:
-
在 Mulesoftfourms 上提出了您的问题。希望现在有一些好的回应:)
标签: api oauth-2.0 mule restful-authentication raml