3

我有一个使用 Java JAX-RS 构建的 REST API,该 API 将公开并受 OAuth 2.0 保护。

我计划从我正在构建的内部项目中使用这个 API,因为它是我的 API,我不希望用户授权我调用这个 API。

现在,我正在使用过滤器来检查访问令牌并根据我的 OAuth 提供程序验证它,配置示例:

<!-- Exposing the facility service as a REST service -->
<jaxrs:server id="restContainer" address="/">
    <jaxrs:serviceBeans>
      .. services beans
    </jaxrs:serviceBeans>
    <jaxrs:providers>
      <ref bean="oauthFilter"/> <-- filter to validate oauth
      <ref bean="apiUsageFilter"/> <-- filter to check api usage (integrated with 3scale)
      <ref bean="jacksonProvider" />
      <ref bean="exceptionMapper" />
    </jaxrs:providers>
    <jaxrs:extensionMappings>
      <entry key="json" value="application/json" />
      <entry key="xml" value="application/xml" />
      <entry key="html" value="text/html" />
    </jaxrs:extensionMappings>
    <jaxrs:features>
      <bean class="org.apache.cxf.feature.LoggingFeature"/>  
    </jaxrs:features>
</jaxrs:server>

我想知道我是否可以实现一个新的过滤器来检查呼叫的来源,如果它来自列出的 ip(s)/domain(s) 则绕过 oauth,如果不是,则继续 oauth。

这种方法可能吗?这是一个好习惯吗?优点和缺点?

谢谢!

4

1 回答 1

1

解决方案很简单:我们在 OAuth 2.0 服务器中为服务器到服务器应用程序实现了客户端授权授权,并为移动应用程序(没有后端)实现了资源所有者凭据授权。

于 2014-01-25T17:02:30.543 回答