diff --git a/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/APIMgtGatewayConstants.java b/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/APIMgtGatewayConstants.java index 176f2b925614..14bcaf271a1a 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/APIMgtGatewayConstants.java +++ b/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/APIMgtGatewayConstants.java @@ -180,6 +180,7 @@ public class APIMgtGatewayConstants { public static final String OAUTH_ENDPOINT_INSTANCE = "oauth.instance"; public static final String VALIDATED_X509_CERT = "ValidatedX509Cert"; public static final String RESOURCE_SPAN = "API:Resource"; + public static final String AUTO_TRANSPORT_OPERATION_CLEANUP = "autoTransportOperationCleanUp"; /** * Web-sub related properties diff --git a/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/security/basicauth/BasicAuthCredentialValidator.java b/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/security/basicauth/BasicAuthCredentialValidator.java index ee0868cf307a..2b5d9f411cd0 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/security/basicauth/BasicAuthCredentialValidator.java +++ b/components/apimgt/org.wso2.carbon.apimgt.gateway/src/main/java/org/wso2/carbon/apimgt/gateway/handlers/security/basicauth/BasicAuthCredentialValidator.java @@ -27,6 +27,7 @@ import org.apache.synapse.core.axis2.Axis2MessageContext; import org.apache.synapse.rest.RESTConstants; import org.wso2.carbon.CarbonConstants; +import org.wso2.carbon.apimgt.gateway.APIMgtGatewayConstants; import org.wso2.carbon.apimgt.gateway.MethodStats; import org.wso2.carbon.apimgt.gateway.handlers.security.APIKeyValidator; import org.wso2.carbon.apimgt.gateway.handlers.security.APISecurityConstants; @@ -94,6 +95,11 @@ public BasicAuthCredentialValidator() throws APISecurityException { Options options = client.getOptions(); options.setCallTransportCleanup(true); options.setManageSession(true); + if (System.getProperty(APIMgtGatewayConstants.AUTO_TRANSPORT_OPERATION_CLEANUP) != null) { + options.setProperty(ServiceClient.AUTO_OPERATION_CLEANUP, + Boolean.parseBoolean( + System.getProperty(APIMgtGatewayConstants.AUTO_TRANSPORT_OPERATION_CLEANUP))); + } CarbonUtils.setBasicAccessSecurityHeaders(username, password, client); } catch (AxisFault axisFault) { throw new APISecurityException(APISecurityConstants.API_AUTH_GENERAL_ERROR, axisFault.getMessage(), axisFault);