我将我的API从较旧的系统迁移到WSO2 APIM 2.0.0,并尝试让我的API用户对该交换机透明。我已经迁移了现有的consumer_key / secrets。
是否可以将/ token API自定义为其他内容?
在我的旧系统中,OAuth令牌通过类似的路径进行管理 /的OAuth / client_credential /的accessToken
也许可以将/ oauth / client_credential / accesstoken映射到/ token以便两者都可以使用?
答案 0 :(得分:0)
如果你只想更改/ token api的基本路径,你可以在api manager前面使用一些反向代理(例如nginx),或者在api manager本身内部创建一个这样的代理api。
<api xmlns="http://ws.apache.org/ns/synapse" name="_WSO2AMTokenAPIProxy_" context="/oauth/client_credential/accesstoken">
<resource methods="POST" url-mapping="/*" faultSequence="_token_fault_">
<inSequence>
<property name="uri.var.portnum" expression="get-property('https.nio.port')"/>
<send>
<endpoint>
<http uri-template="https://localhost:{uri.var.portnum}/token">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</resource>
<handlers/>
</api>
您需要将其复制到<APIM_HOME>/repository/deployment/server/synapse-configs/default/api/_WSO2AMTokenAPIProxy_.xml
答案 1 :(得分:0)
解决方案Bhathiya建议工作,只需调整代理端点
<api xmlns="http://ws.apache.org/ns/synapse" name="_WSO2AMTokenAPIProxy_" context="/oauth/client_credential/accesstoken">
<resource methods="POST" url-mapping="/*" faultSequence="_token_fault_">
<inSequence>
<send>
<endpoint>
<http uri-template="http://127.0.0.1:8280/token">
<timeout>
<duration>60000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</resource>