我使用下面的配置创建了一个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>
答案 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然后我去了。