我正在使用RAML创建一个Web服务API。
我用两种安全方案创建了RAML
OAuth 2.0
自订
我的第一种方法是根据请求参数处理授权,在该请求参数中,我在请求内发送了一个特殊参数,然后将授权任务委派给任一授权引擎。但这没有用,当向OAuth服务器发出请求时,它就抛出了Null Pointer Exception
。
然后我才知道针对不同授权方案的授权请求应具有不同的URI,例如,如果发出了针对oAuth的请求,则URI应该类似于/ api / oauth2 / authorize?parameters,而对于其他方案而言,oauth 1.0可以是/ api / oauth1 /授权参数
为了实现这一点,我添加了两个具有不同URI模式的APIkit路由器流。
所附图像中的第一个APIKit流用于自定义授权,第二个用于OAuth。从图中可以看出,在第二个流程中,我在APIkit路由器之前添加了OAuth验证器。
我想知道将OAuth验证器放在该位置是否正确,以便可以验证每个请求?还是应该将OAuth验证程序作为每个资源流的第一个元素,以便在发出请求后,OAuth可以验证对单个资源的请求。我还在OAuth的某处读到了内容,首先对请求进行身份验证,然后才允许访问受保护的资源,在这种情况下,我猜想我在APIKit路由器正确之前添加OAuth验证程序的方法。但是,我不确定这一点,并希望在整个场景中提供第二条建议。
谢谢。