如何识别对后端的 wso2 请求
How to identify wso2 request to backend
我试图在 Internet 上找到相关资源,但我无法找到这方面的一些信息。
我想了解如何识别对后端服务器的 wso2 调用。
我可以设置任何自定义 http headers,但任何人都可以在 cURL 请求中覆盖它。所以这不是一个解决方案。还有其他想法吗?
编辑
If its not clear enough
- 当我将在我的后端服务器(API 端点)中收到一个调用时,我将如何识别它是来自 wso2 还是来自其他地方。可能你会说 'HTTP_USER_AGENT' 但它可以被自动覆盖。
您必须为 WSO2 API 管理器启用线路日志。要做到这一点去
/repository/conf/log4j.properties 文件并取消注释
#log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
并重新启动 API 管理器。
来自 API 管理员的传出消息将使用 <<
符号记录。
示例:
[2017-08-17 10:10:49,007] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "GET /am/sample/pizzashack/v1/api/menu HTTP/1.1[\r][\n]"
[2017-08-17 10:10:49,007] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Origin: https://10.100.5.154:9443[\r][\n]"
[2017-08-17 10:10:49,007] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Accept: application/json[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Referer: https://10.100.5.154:9443/store/apis/info?name=PizzaShackAPI&version=1.0.0&provider=admin[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Accept-Encoding: gzip, deflate, br[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Accept-Language: en-US,en;q=0.8[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Host: localhost:9443[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Connection: Keep-Alive[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "[\r][\n]"
当通过 WSO2 API Manager 或 ESB 或 EI 处理请求时,您可以通过多种方式记录请求和响应。
请按如下方式在 conf/log4j.properties 文件中启用线路日志。
#log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
启用后会打印四种日志类型,并用相应的标记进行标记。
- 请求到达服务器“>>”
- 请求发送到后端“<<”
- 响应到达服务器“>>”
- 响应转到客户端“<<”
您可以创建一个 custom mediation sequence (per API) or a custom handler(全局)来自动注入一个 http header。
我试图在 Internet 上找到相关资源,但我无法找到这方面的一些信息。
我想了解如何识别对后端服务器的 wso2 调用。
我可以设置任何自定义 http headers,但任何人都可以在 cURL 请求中覆盖它。所以这不是一个解决方案。还有其他想法吗?
编辑
If its not clear enough
- 当我将在我的后端服务器(API 端点)中收到一个调用时,我将如何识别它是来自 wso2 还是来自其他地方。可能你会说 'HTTP_USER_AGENT' 但它可以被自动覆盖。
您必须为 WSO2 API 管理器启用线路日志。要做到这一点去 /repository/conf/log4j.properties 文件并取消注释
#log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
并重新启动 API 管理器。
来自 API 管理员的传出消息将使用 <<
符号记录。
示例:
[2017-08-17 10:10:49,007] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "GET /am/sample/pizzashack/v1/api/menu HTTP/1.1[\r][\n]"
[2017-08-17 10:10:49,007] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Origin: https://10.100.5.154:9443[\r][\n]"
[2017-08-17 10:10:49,007] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Accept: application/json[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Referer: https://10.100.5.154:9443/store/apis/info?name=PizzaShackAPI&version=1.0.0&provider=admin[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Accept-Encoding: gzip, deflate, br[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Accept-Language: en-US,en;q=0.8[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Host: localhost:9443[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "Connection: Keep-Alive[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]"
[2017-08-17 10:10:49,008] DEBUG - wire HTTPS-Sender I/O dispatcher-1 << "[\r][\n]"
当通过 WSO2 API Manager 或 ESB 或 EI 处理请求时,您可以通过多种方式记录请求和响应。
请按如下方式在 conf/log4j.properties 文件中启用线路日志。
#log4j.logger.org.apache.synapse.transport.http.wire=DEBUG
启用后会打印四种日志类型,并用相应的标记进行标记。
- 请求到达服务器“>>”
- 请求发送到后端“<<”
- 响应到达服务器“>>”
- 响应转到客户端“<<”
您可以创建一个 custom mediation sequence (per API) or a custom handler(全局)来自动注入一个 http header。