【问题标题】:How can I implement an OAuth flow in a CXF endpoint (SOAP) in Camel (preferably Blueprint)?如何在 Camel(最好是蓝图)的 CXF 端点 (SOAP) 中实现 OAuth 流?
【发布时间】:2019-02-16 21:32:46
【问题描述】:

我想通过 camel-cxf 端点 处理 SOAP Web 服务。如何实现 OAuth 流程,最好在蓝图中实现?这是可配置的还是我必须自己实现?

【问题讨论】:

    标签: oauth-2.0 apache-camel cxf jbossfuse blueprint-osgi


    【解决方案1】:

    我在此找到了不错的 documentation

    基本上,您必须实现拦截器和过滤器: 您的 blueprint.xml

    <bean id="tvServiceClientFactory" class="org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean">
        <property name="address" value="http://localhost:${http.port}/services/oauth/validate"/>
        <property name="headers">
            <map>
                <entry key="Accept" value="application/xml"/>
                <entry key="Content-Type" value="application/x-www-form-urlencoded"/>
            </map>
        </property>
    </bean>
    
    <bean id="tvServiceClient" factory-bean="tvServiceClientFactory" factory-method="createWebClient"/>
    
    <bean id="tokenValidator" class="org.apache.cxf.rs.security.oauth2.filters.AccessTokenValidatorClient">
        <property name="tokenValidatorClient" ref="tvServiceClient"/>
    </bean>
    
    <bean id="oauthFiler" class="org.apache.cxf.rs.security.oauth2.filters.OAuthRequestFilter">
        <property name="tokenValidator" ref="tokenValidator"/>
    </bean>
    
    <bean id="myApp" class="org.myapp.MyApp"/>
    
    <jaxrs:server id="fromThirdPartyToMyApp" address="/thirdparty-to-myapp">
       <jaxrs:serviceBeans>
          <ref bean="myApp"/>
      </jaxrs:serviceBeans>
      <jaxrs:providers>
          <ref bean="oauthFilter"/>
      </jaxrs:providers>
    </jaxrs:server>
    

    【讨论】:

    • 是的,这是一个很好的文档。您提到的部分是用于保护资源,但我想访问资源。所以我想实现客户端。所以我认为Client-side support 部分在这里更有趣。现在我尝试为 SOAP 而不是 REST 创建一个示例。可能直接在 SOAP 的 cxf:cxfEndpoint 中。
    • 或者我是否必须使用 JAX-RS 客户端获取我的令牌,然后在我的 SOAP 端点中使用令牌?
    • 我所看到的,如果用户的凭据正确,后端应该注册令牌,将其发送给客户端,然后在每个其他请求中它应该验证令牌并发送回复。我认为客户端应该使用它的凭据发送 SOAP 并获​​取令牌 - 每个其他请求都带有令牌。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2018-11-19
    相关资源
    最近更新 更多