Spring security 从Mule OAuth2提供程序获取XML格式的OAuth2令牌;目前它以JSON的形式返回

Spring security 从Mule OAuth2提供程序获取XML格式的OAuth2令牌;目前它以JSON的形式返回,spring-security,oauth-2.0,mule,mule-studio,Spring Security,Oauth 2.0,Mule,Mule Studio,我已经使用Mule密码授权类型流实现了OAuth2提供程序,如所示。但它以JSON格式返回令牌响应;我想要XML格式的,我怎么做 <spring:beans> <ss:authentication-manager id="resourceOwnerAuthenticationManager"> <ss:authentication-provider> <ss:use

我已经使用Mule密码授权类型流实现了OAuth2提供程序,如所示。但它以JSON格式返回令牌响应;我想要XML格式的,我怎么做

    <spring:beans>     
        <ss:authentication-manager id="resourceOwnerAuthenticationManager">
            <ss:authentication-provider>
                <ss:user-service id="resourceOwnerUserService">
                    <ss:user name="user" password="password" authorities="RESOURCE_OWNER" />
                </ss:user-service>
            </ss:authentication-provider> 
        </ss:authentication-manager>
    </spring:beans>

    <mule-ss:security-manager>
        <mule-ss:delegate-security-provider
            name="resourceOwnerSecurityProvider"
            delegate-ref="resourceOwnerAuthenticationManager" />
    </mule-ss:security-manager>

<oauth2-provider:config
        name="oauth2Provider"
        providerName="SampleAPI"
        supportedGrantTypes="RESOURCE_OWNER_PASSWORD_CREDENTIALS"
        port="8083"
        authorizationEndpointPath="sampleapi/api/authorize"
        accessTokenEndpointPath="sampleapi/api/token"
        resourceOwnerSecurityProvider-ref="resourceOwnerSecurityProvider"
        scopes="READ_RESOURCE POST_RESOURCE" doc:name="OAuth provider module">
            <oauth2-provider:clients>
                <oauth2-provider:client clientId="myclientid3" secret="myclientsecret"
                                        type="CONFIDENTIAL" clientName="Mule Bookstore" description="Mule-powered On-line Bookstore">
                    <oauth2-provider:redirect-uris>
                        <oauth2-provider:redirect-uri>http://localhost*</oauth2-provider:redirect-uri>
                    </oauth2-provider:redirect-uris>
                    <oauth2-provider:authorized-grant-types>
                        <oauth2-provider:authorized-grant-type>PASSWORD</oauth2-provider:authorized-grant-type>
                    </oauth2-provider:authorized-grant-types>
                    <oauth2-provider:scopes>
                        <oauth2-provider:scope>READ_RESOURCE</oauth2-provider:scope>
                        <oauth2-provider:scope>POST_RESOURCE</oauth2-provider:scope>
                    </oauth2-provider:scopes>
                </oauth2-provider:client>
            </oauth2-provider:clients>
    </oauth2-provider:config>

            
                
                    
                        http://localhost*
                    
                    
密码
                    
                    
阅读资源
邮政资源
                    
                
            
    

我认为如果您想这样做,您需要在流的末尾创建一个选项,然后如果'Accept'头等于'application/xml',您可以将一个自定义转换器从json转换为xml。因为声明返回的令牌应该是json。我是用SpringSecurityOAuth2做的,但这是一个定制

我认为,如果您想这样做,您需要在流的末尾创建一个选项,然后如果“Accept”头等于“application/xml”,则需要将一个自定义转换器从json转换为xml。因为声明返回的令牌应该是json。我是用SpringSecurityOAuth2做的,但这是一个定制

您可能希望创建一个新的http mule流,该流调用oauth2提供者令牌端点并将其响应转换为xml

创建新的mule配置文件:

<flow name="token-json-to-xmlFlow">
   <http:listener> <-- new token endpoint
   <http:request> <-- invoke the oauth2 provider token 
   <transform-message> <-- json to xml transformer
</flow>


您可能希望创建一个新的http mule流,该流调用oauth2提供者令牌端点并将其响应转换为xml

创建新的mule配置文件:

<flow name="token-json-to-xmlFlow">
   <http:listener> <-- new token endpoint
   <http:request> <-- invoke the oauth2 provider token 
   <transform-message> <-- json to xml transformer
</flow>



为什么需要in和xml格式?因为我的RAML服务是XML格式的,我希望令牌是这种格式的,这样我就不需要一种格式用于OAuth2令牌,另一种格式用于REST服务。这可能吗。具有SPring安全性的OAuth2提供程序具有该功能。在Mule OAuth2实现中可能吗?我希望您只需要OAuth令牌。在这种情况下,您可以将调用检索令牌i的组件封装为消息enricher,然后仅将令牌设置为FlowVariables,并在需要时在流中使用它们。这对你的用例有用吗?谢谢你Neeraj。实际上,在我的需求中,只有OAuth2和REST服务托管在Mule ESB上。REST使用者是多个基于Java和Microsoft SSIS的使用者;我还需要XML格式的令牌。你好,纳文,不可能吗?由于我的服务使用XML进行通信,所以我也希望有XML格式的令牌响应。为什么需要in和XML格式?因为我的RAML服务是XML格式的,我希望令牌是这种格式的,这样我就不需要一种格式用于OAuth2令牌,另一种格式用于REST服务。这可能吗。具有SPring安全性的OAuth2提供程序具有该功能。在Mule OAuth2实现中可能吗?我希望您只需要OAuth令牌。在这种情况下,您可以将调用检索令牌i的组件封装为消息enricher,然后仅将令牌设置为FlowVariables,并在需要时在流中使用它们。这对你的用例有用吗?谢谢你Neeraj。实际上,在我的需求中,只有OAuth2和REST服务托管在Mule ESB上。REST使用者是多个基于Java和Microsoft SSIS的使用者;我还需要XML格式的令牌。你好,纳文,不可能吗?由于我的服务正在使用XML进行通信,我也希望有XML格式的令牌响应。你们能分享一下代码示例吗?我上周学习了更多,你们使用的是哪个版本的AnyPointStudio?因为在Mule 3.7中,您可以将Transformer消息组件放在中,以将json转换为xml。请看这里的一个例子,感谢Ismael,我使用的是Mule 3.7,但当我在这个问题中输入的代码中将json放入xml transformer时,Mule中的XSD验证失败,我的Mule应用程序无法部署。我认为Mule不允许在和中的任何地方进行json到xml的转换。因此,我无法获取xml格式的令牌。如果我错了,请纠正我。我明白你的意思。你能公开其他身份验证服务吗?这些服务调用你当前的身份验证服务来将收到的响应转换到客户端?谢谢你,伊斯梅尔。我明白你的意思,但我不知道怎么做。谢谢你,伊斯梅尔。你们能分享一下代码示例吗?我上周学习了更多,你们使用的是哪个版本的AnyPointStudio?因为在Mule 3.7中,您可以将Transformer消息组件放在中,以将json转换为xml。请看这里的一个例子,感谢Ismael,我使用的是Mule 3.7,但当我在这个问题中输入的代码中将json放入xml transformer时,Mule中的XSD验证失败,我的Mule应用程序无法部署。我认为Mule不允许在和中的任何地方进行json到xml的转换。因此,我无法获取xml格式的令牌。如果我错了,请纠正我。我明白你的意思。你能公开其他身份验证服务吗?这些服务调用你当前的身份验证服务来将收到的响应转换到客户端?谢谢你,伊斯梅尔。我明白你的意思,但我不知道怎么做。谢谢你,文斯。您有任何可以与我粘贴的代码集成的示例吗?只需创建一个新的流来调用您现在拥有的令牌端点。http入站-->调用http令牌url-->将json转换为XML谢谢Vince。您有任何可以与我粘贴的代码集成的示例吗?只需创建一个新的流来调用您现在拥有的令牌端点。http入站-->调用http令牌u