From edec9e3348c56166d2d42a599ff734d5a224491e Mon Sep 17 00:00:00 2001 From: Thisal Tennakoon Date: Sun, 16 Mar 2025 18:07:39 +0530 Subject: [PATCH] Add config changes for adding support for global connection timeout and proxy configurations --- .../repository/conf/synapse.properties.j2 | 21 +++++++++++++- .../api_templates/endpoint_template.xml | 28 +++++++++++++++++-- .../repository/conf/synapse.properties.j2 | 21 +++++++++++++- .../api_templates/endpoint_template.xml | 28 +++++++++++++++++-- .../repository/conf/synapse.properties.j2 | 21 +++++++++++++- .../api_templates/endpoint_template.xml | 28 +++++++++++++++++-- .../repository/conf/synapse.properties.j2 | 21 +++++++++++++- .../api_templates/endpoint_template.xml | 28 +++++++++++++++++-- 8 files changed, 180 insertions(+), 16 deletions(-) diff --git a/all-in-one-apim/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 b/all-in-one-apim/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 index 42ad5d6752..49128af537 100644 --- a/all-in-one-apim/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 +++ b/all-in-one-apim/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 @@ -22,6 +22,25 @@ synapse.artifacts.file.storage.enabled=false {% endif %} {% endif %} -{% if apim.mediator_config.oauth.enable_retry_call_with_new_token && apim.redis_config is defined %} +{% if apim.mediator_config.oauth.enable_retry_call_with_new_token %} +{% if apim.mediator_config.oauth.connection_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.timeout={{apim.mediator_config.oauth.connection_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.connection_request_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.request.timeout={{apim.mediator_config.oauth.connection_request_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.socket_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.socket.timeout={{apim.mediator_config.oauth.socket_timeout_duration}} +{% endif %} +{% if apim.redis_config is defined %} token.cache.class=org.wso2.carbon.apimgt.gateway.mediators.oauth.RedisTokenCache {% endif %} +{% if apim.proxy_config is defined && apim.proxy_config.enable %} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.enabled=true +synapse.endpoint.http.oauth.token.endpoint.global.proxy.host={{apim.proxy_config.host}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.port={{apim.proxy_config.port}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.username={{apim.proxy_config.username}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.password={{apim.proxy_config.password}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.protocol={{apim.proxy_config.protocol}} +{% endif %} +{% endif %} diff --git a/all-in-one-apim/modules/distribution/resources/api_templates/endpoint_template.xml b/all-in-one-apim/modules/distribution/resources/api_templates/endpoint_template.xml index cf859d6505..48ee7897b3 100644 --- a/all-in-one-apim/modules/distribution/resources/api_templates/endpoint_template.xml +++ b/all-in-one-apim/modules/distribution/resources/api_templates/endpoint_template.xml @@ -120,6 +120,25 @@ $util.escapeXml($endpointSecurity.clientSecret) #end $util.escapeXml($endpointSecurity.tokenUrl) + #if($endpointSecurity.connectionTimeoutConfigType) + #if($endpointSecurity.connectionTimeoutConfigType == "ENDPOINT_SPECIFIC") + $util.escapeXml($endpointSecurity.connectionTimeoutDuration) + $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) + $util.escapeXml($endpointSecurity.socketTimeoutDuration) + #elseif($endpointSecurity.connectionTimeoutConfigType == "NONE") + false + #else + true + #end + #else + #if($endpointSecurity.connectionTimeoutDuration != -1 || $endpointSecurity.connectionRequestTimeoutDuration != -1 || $endpointSecurity.socketTimeoutDuration != -1) + $endpointSecurity.connectionTimeoutDuration + $endpointSecurity.connectionRequestTimeoutDuration + $endpointSecurity.socketTimeoutDuration + #else + true + #end + #end #if($endpointSecurity.proxyConfigs && $endpointSecurity.proxyConfigs.proxyEnabled == true) $util.escapeXml($endpointSecurity.proxyConfigs.proxyHost) @@ -132,10 +151,13 @@ #end $util.escapeXml($endpointSecurity.proxyConfigs.proxyProtocol) + #else + #if($endpointSecurity.proxyConfigType && $endpointSecurity.proxyConfigType == "NONE") + false + #else + true + #end #end - $util.escapeXml($endpointSecurity.connectionTimeoutDuration) - $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) - $util.escapeXml($endpointSecurity.socketTimeoutDuration) #set($requestParametersMap = $util.jsonStringToMap($endpointSecurity.customParameters)) #if($requestParametersMap.size() > 0) diff --git a/api-control-plane/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 b/api-control-plane/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 index 42ad5d6752..49128af537 100644 --- a/api-control-plane/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 +++ b/api-control-plane/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 @@ -22,6 +22,25 @@ synapse.artifacts.file.storage.enabled=false {% endif %} {% endif %} -{% if apim.mediator_config.oauth.enable_retry_call_with_new_token && apim.redis_config is defined %} +{% if apim.mediator_config.oauth.enable_retry_call_with_new_token %} +{% if apim.mediator_config.oauth.connection_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.timeout={{apim.mediator_config.oauth.connection_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.connection_request_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.request.timeout={{apim.mediator_config.oauth.connection_request_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.socket_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.socket.timeout={{apim.mediator_config.oauth.socket_timeout_duration}} +{% endif %} +{% if apim.redis_config is defined %} token.cache.class=org.wso2.carbon.apimgt.gateway.mediators.oauth.RedisTokenCache {% endif %} +{% if apim.proxy_config is defined && apim.proxy_config.enable %} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.enabled=true +synapse.endpoint.http.oauth.token.endpoint.global.proxy.host={{apim.proxy_config.host}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.port={{apim.proxy_config.port}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.username={{apim.proxy_config.username}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.password={{apim.proxy_config.password}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.protocol={{apim.proxy_config.protocol}} +{% endif %} +{% endif %} diff --git a/api-control-plane/modules/distribution/resources/api_templates/endpoint_template.xml b/api-control-plane/modules/distribution/resources/api_templates/endpoint_template.xml index 5fba82ee7f..34f3c5599e 100644 --- a/api-control-plane/modules/distribution/resources/api_templates/endpoint_template.xml +++ b/api-control-plane/modules/distribution/resources/api_templates/endpoint_template.xml @@ -120,6 +120,25 @@ $util.escapeXml($endpointSecurity.clientSecret) #end $util.escapeXml($endpointSecurity.tokenUrl) + #if($endpointSecurity.connectionTimeoutConfigType) + #if($endpointSecurity.connectionTimeoutConfigType == "ENDPOINT_SPECIFIC") + $util.escapeXml($endpointSecurity.connectionTimeoutDuration) + $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) + $util.escapeXml($endpointSecurity.socketTimeoutDuration) + #elseif($endpointSecurity.connectionTimeoutConfigType == "NONE") + false + #else + true + #end + #else + #if($endpointSecurity.connectionTimeoutDuration != -1 || $endpointSecurity.connectionRequestTimeoutDuration != -1 || $endpointSecurity.socketTimeoutDuration != -1) + $endpointSecurity.connectionTimeoutDuration + $endpointSecurity.connectionRequestTimeoutDuration + $endpointSecurity.socketTimeoutDuration + #else + true + #end + #end #if($endpointSecurity.proxyConfigs && $endpointSecurity.proxyConfigs.proxyEnabled == true) $util.escapeXml($endpointSecurity.proxyConfigs.proxyHost) @@ -132,10 +151,13 @@ #end $util.escapeXml($endpointSecurity.proxyConfigs.proxyProtocol) + #else + #if($endpointSecurity.proxyConfigType && $endpointSecurity.proxyConfigType == "NONE") + false + #else + true + #end #end - $util.escapeXml($endpointSecurity.connectionTimeoutDuration) - $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) - $util.escapeXml($endpointSecurity.socketTimeoutDuration) #set($requestParametersMap = $util.jsonStringToMap($endpointSecurity.customParameters)) #if($requestParametersMap.size() > 0) diff --git a/gateway/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 b/gateway/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 index 42ad5d6752..49128af537 100644 --- a/gateway/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 +++ b/gateway/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 @@ -22,6 +22,25 @@ synapse.artifacts.file.storage.enabled=false {% endif %} {% endif %} -{% if apim.mediator_config.oauth.enable_retry_call_with_new_token && apim.redis_config is defined %} +{% if apim.mediator_config.oauth.enable_retry_call_with_new_token %} +{% if apim.mediator_config.oauth.connection_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.timeout={{apim.mediator_config.oauth.connection_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.connection_request_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.request.timeout={{apim.mediator_config.oauth.connection_request_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.socket_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.socket.timeout={{apim.mediator_config.oauth.socket_timeout_duration}} +{% endif %} +{% if apim.redis_config is defined %} token.cache.class=org.wso2.carbon.apimgt.gateway.mediators.oauth.RedisTokenCache {% endif %} +{% if apim.proxy_config is defined && apim.proxy_config.enable %} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.enabled=true +synapse.endpoint.http.oauth.token.endpoint.global.proxy.host={{apim.proxy_config.host}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.port={{apim.proxy_config.port}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.username={{apim.proxy_config.username}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.password={{apim.proxy_config.password}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.protocol={{apim.proxy_config.protocol}} +{% endif %} +{% endif %} diff --git a/gateway/modules/distribution/resources/api_templates/endpoint_template.xml b/gateway/modules/distribution/resources/api_templates/endpoint_template.xml index 908f3bca30..057617a24f 100644 --- a/gateway/modules/distribution/resources/api_templates/endpoint_template.xml +++ b/gateway/modules/distribution/resources/api_templates/endpoint_template.xml @@ -117,6 +117,25 @@ $util.escapeXml($endpointSecurity.clientSecret) #end $util.escapeXml($endpointSecurity.tokenUrl) + #if($endpointSecurity.connectionTimeoutConfigType) + #if($endpointSecurity.connectionTimeoutConfigType == "ENDPOINT_SPECIFIC") + $util.escapeXml($endpointSecurity.connectionTimeoutDuration) + $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) + $util.escapeXml($endpointSecurity.socketTimeoutDuration) + #elseif($endpointSecurity.connectionTimeoutConfigType == "NONE") + false + #else + true + #end + #else + #if($endpointSecurity.connectionTimeoutDuration != -1 || $endpointSecurity.connectionRequestTimeoutDuration != -1 || $endpointSecurity.socketTimeoutDuration != -1) + $endpointSecurity.connectionTimeoutDuration + $endpointSecurity.connectionRequestTimeoutDuration + $endpointSecurity.socketTimeoutDuration + #else + true + #end + #end #if($endpointSecurity.proxyConfigs && $endpointSecurity.proxyConfigs.proxyEnabled == true) $util.escapeXml($endpointSecurity.proxyConfigs.proxyHost) @@ -129,10 +148,13 @@ #end $util.escapeXml($endpointSecurity.proxyConfigs.proxyProtocol) + #else + #if($endpointSecurity.proxyConfigType && $endpointSecurity.proxyConfigType == "NONE") + false + #else + true + #end #end - $util.escapeXml($endpointSecurity.connectionTimeoutDuration) - $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) - $util.escapeXml($endpointSecurity.socketTimeoutDuration) #set($requestParametersMap = $util.jsonStringToMap($endpointSecurity.customParameters)) #if($requestParametersMap.size() > 0) diff --git a/traffic-manager/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 b/traffic-manager/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 index 42ad5d6752..49128af537 100644 --- a/traffic-manager/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 +++ b/traffic-manager/modules/distribution/product/src/main/resources/conf/templates/repository/conf/synapse.properties.j2 @@ -22,6 +22,25 @@ synapse.artifacts.file.storage.enabled=false {% endif %} {% endif %} -{% if apim.mediator_config.oauth.enable_retry_call_with_new_token && apim.redis_config is defined %} +{% if apim.mediator_config.oauth.enable_retry_call_with_new_token %} +{% if apim.mediator_config.oauth.connection_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.timeout={{apim.mediator_config.oauth.connection_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.connection_request_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.connection.request.timeout={{apim.mediator_config.oauth.connection_request_timeout_duration}} +{% endif %} +{% if apim.mediator_config.oauth.socket_timeout_duration is defined %} +synapse.endpoint.http.oauth.token.endpoint.global.socket.timeout={{apim.mediator_config.oauth.socket_timeout_duration}} +{% endif %} +{% if apim.redis_config is defined %} token.cache.class=org.wso2.carbon.apimgt.gateway.mediators.oauth.RedisTokenCache {% endif %} +{% if apim.proxy_config is defined && apim.proxy_config.enable %} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.enabled=true +synapse.endpoint.http.oauth.token.endpoint.global.proxy.host={{apim.proxy_config.host}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.port={{apim.proxy_config.port}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.username={{apim.proxy_config.username}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.password={{apim.proxy_config.password}} +synapse.endpoint.http.oauth.token.endpoint.global.proxy.protocol={{apim.proxy_config.protocol}} +{% endif %} +{% endif %} diff --git a/traffic-manager/modules/distribution/resources/api_templates/endpoint_template.xml b/traffic-manager/modules/distribution/resources/api_templates/endpoint_template.xml index 2d4c142397..ad72c9c982 100644 --- a/traffic-manager/modules/distribution/resources/api_templates/endpoint_template.xml +++ b/traffic-manager/modules/distribution/resources/api_templates/endpoint_template.xml @@ -117,6 +117,25 @@ $util.escapeXml($endpointSecurity.clientSecret) #end $util.escapeXml($endpointSecurity.tokenUrl) + #if($endpointSecurity.connectionTimeoutConfigType) + #if($endpointSecurity.connectionTimeoutConfigType == "ENDPOINT_SPECIFIC") + $util.escapeXml($endpointSecurity.connectionTimeoutDuration) + $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) + $util.escapeXml($endpointSecurity.socketTimeoutDuration) + #elseif($endpointSecurity.connectionTimeoutConfigType == "NONE") + false + #else + true + #end + #else + #if($endpointSecurity.connectionTimeoutDuration != -1 || $endpointSecurity.connectionRequestTimeoutDuration != -1 || $endpointSecurity.socketTimeoutDuration != -1) + $endpointSecurity.connectionTimeoutDuration + $endpointSecurity.connectionRequestTimeoutDuration + $endpointSecurity.socketTimeoutDuration + #else + true + #end + #end #if($endpointSecurity.proxyConfigs && $endpointSecurity.proxyConfigs.proxyEnabled == true) $util.escapeXml($endpointSecurity.proxyConfigs.proxyHost) @@ -129,10 +148,13 @@ #end $util.escapeXml($endpointSecurity.proxyConfigs.proxyProtocol) + #else + #if($endpointSecurity.proxyConfigType && $endpointSecurity.proxyConfigType == "NONE") + false + #else + true + #end #end - $util.escapeXml($endpointSecurity.connectionTimeoutDuration) - $util.escapeXml($endpointSecurity.connectionRequestTimeoutDuration) - $util.escapeXml($endpointSecurity.socketTimeoutDuration) #set($requestParametersMap = $util.jsonStringToMap($endpointSecurity.customParameters)) #if($requestParametersMap.size() > 0)