Mule OAuth2 - 来自mule flow的外部客户端配置

时间:2014-03-07 20:36:16

标签: mule mule-studio

我使用下面的配置创建了一个mule OAuth2提供程序,一切都很好。

我想要做的是将客户端详细信息存储在数据存储中,以便我可以快速添加客户端,而无需再次部署我的应用程序。这是可能的还是我必须将客户硬编码到骡子流中?

<oauth2-provider:config name="OAuth_provider_module" accessTokenEndpointPath="oauth/token" authorizationEndpointPath="oauth/authorize" doc:name="OAuth provider module" scopes="READ_PROFILE" resomuurceOwnerSecurityProvider-ref="resourceOwnerSecurityProvider" providerName="Provider" loginPage="login.html">
    <oauth2-provider:clients>
        <oauth2-provider:client clientId="ccccccc" secret="ddddddd" type="CONFIDENTIAL" clientName="blah" description="blah">
            <oauth2-provider:redirect-uris>
                <oauth2-provider:redirect-uri>http://localhost:3000/callback</oauth2-provider:redirect-uri>
            </oauth2-provider:redirect-uris>
            <oauth2-provider:authorized-grant-types>
                <oauth2-provider:authorized-grant-type>AUTHORIZATION_CODE</oauth2-provider:authorized-grant-type>
            </oauth2-provider:authorized-grant-types>
            <oauth2-provider:scopes>
                <oauth2-provider:scope>READ_PROFILE</oauth2-provider:scope>
            </oauth2-provider:scopes>
        </oauth2-provider:client>
    </oauth2-provider:clients>
</oauth2-provider:config>

2 个答案:

答案 0 :(得分:1)

如果你看一下Mule OAuth 2 guide,应该有很多选择。如果要在外部管理客户端,将配置或客户端存储注入自定义Spring bean可能是一个不错的选择。

<spring:bean class="YourClass" init-method="initialize">
   <spring:property name="config" value="#{OAuth_provider_module.configuration}" />
</spring:bean>

并在您的自定义类中:

private Configuration configuration;
public void initialize() {
   configuration.getClientStore()
     etc...
}

public void setConfig(Configuration configuration) {
  this.configuration = configuration;
}

或者,使用

直接注入客户端存储(如在指南示例中)
name="clientRegistration" value="#{OAuth_provider_module.configuration.clientStore}"

setClientRegistration(final ClientRegistration clientRegistration)

答案 1 :(得分:0)

最后我将配置更改为

<oauth2-provider:config name="OAuth_provider_module" 
                        accessTokenEndpointPath="oauth/token" 
                        authorizationEndpointPath="oauth/authorize" 
                        doc:name="OAuth provider module" 
                        scopes="READ_PROFILE" 
                        resourceOwnerSecurityProvider-ref="resourceOwnerSecurityProvider" 
                        clientStore-ref="customClientStore"
                        providerName="TLRG Authentication" 
                        loginPage="login.html">
</oauth2-provider:config>

使用spring注入clientStore-ref。

我所要做的就是制作customClientStore工具org.mule.modules.oauth2.provider.client.ClientStore然后我去了。