Spring security 从Mule OAuth2提供程序获取XML格式的OAuth2令牌;目前它以JSON的形式返回
我已经使用Mule密码授权类型流实现了OAuth2提供程序,如所示。但它以JSON格式返回令牌响应;我想要XML格式的,我怎么做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
<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