我配置了 WSO2 API 管理器,一切似乎都运行良好。
唯一困扰我的问题是,在 Auth 异常的情况下,API 管理器总是返回带有 XML 内容类型的响应,例如,
<ams:fault xmlns:ams="http://wso2.org/apimanager/security"><ams:code>900904</ams:code><ams:message>Access Token Inactive</ams:message><ams:description>Access failure for API: /exchange, version: 1.0 with key: 1139a466ebfd825aca953ad7259b9f45</ams:description></ams:fault>
如果客户端以 JSON 格式与我的 Web 服务通信,XML 响应看起来会有点奇怪。
有什么想法可以让 API Manager 提供 JSON 格式的错误响应吗?
最佳答案
这有 been addressed在最新版本的 API 管理器中。通过添加或更新 WSO2HOME/repository/deployment/server/synapse-configs/default/sequences/_auth_failure_handler_.xml 中的 error_message_type
属性,可以将 Auth 错误设置为 json 格式:
<property name="error_message_type" value="application/json"/>
我发现这还需要为 axis2.xml 中的 json 内容类型选择 JSONBuilder
和 JSONMessageFormatter
(这是默认设置)。
对于旧版本,this article解释了如何手动执行相同的操作。
关于json - WSO2 API Manager Auth 错误内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17687483/