我正在开发一个项目,在该项目中我需要通过 Web 服务公开它的一些方法,并且我正在通过遵循 RAML 使用 Mule 并实现安全性,提出了 OAuth 2.0。我能够验证客户端的“client_id”和“client_secret”,但为此我只在配置文件中提供了凭据。现在我需要从数据库中获取客户详细信息。我尝试使用“preFlow-ref”,并且正在调用另一个流,我可以在其中检索“client_id”和“client_secret”,但不知道如何回调 OAuth。
<spring:beans>
<spring:bean id="oauthTokenStore" name="oauthTokenStore" class="database_connection.MyClientStore"/>
</spring:beans>
<oauth2-provider:config
name="oauth2Provider"
providerName="TweetBook"
supportedGrantTypes="CLIENT_CREDENTIALS"
preFlow-ref="apiFlow1"
host="localhost"
port="8083"
authorizationEndpointPath="tweetbook/api/authorize"
accessTokenEndpointPath="tweetbook/api/token"
scopes="READ_PROFILE WRITE_PROFILE READ_BOOKSHELF WRITE_BOOKSHELF">
</oauth2-provider:config>
<apikit:config name="Router" raml="src/main/api/api.raml" consoleEnabled="true" consolePath="console" doc:name="Router"/>
<flow name="apiFlow1">
<set-variable variableName="client_id" value="1234567890abcd" doc:name="Client id"/>
<logger message="entered DB flow" level="INFO" doc:name="Logger"/>
<db:select config-ref="Generic_Database_Configuration" doc:name="Database">
<db:dynamic-query><![CDATA[select client_secret from table1 where client_id = #[flowVars.client_Id]]]></db:dynamic-query>
</db:select>
<logger message="exit db flow" level="INFO" doc:name="Logger"/>
</flow>