我有一个使用 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。
这种方法可能吗?这是一个好习惯吗?优点和缺点?
谢谢!