Language: Python
Label: safe
CWE: CWE-918 \u2014 Server-Side Request Forgery (SSRF)
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.

Code:
def test_http_request_request_headers_user_agent_and_extra_header(request):
    """This test requires the package in tests/resources/mlflow-test-plugin to be installed"""

    from mlflow_test_plugin.request_header_provider import PluginRequestHeaderProvider

    # The test plugin's request header provider always returns False from in_context to avoid
    # polluting request headers in developers' environments. The following mock overrides this to
    # perform the integration test.
    with mock.patch.object(
        PluginRequestHeaderProvider, "in_context", return_value=True
    ), mock.patch.object(
        PluginRequestHeaderProvider,
        "request_headers",
        return_value={_USER_AGENT: "test_user_agent", "header": "value"},
    ):
        host_only = MlflowHostCreds("http://my-host", server_cert_path="/some/path")
        expected_headers = {
            _USER_AGENT: "{} {}".format(
                DefaultRequestHeaderProvider().request_headers()[_USER_AGENT], "test_user_agent"
            ),
            "header": "value",
        }

        response = mock.MagicMock()
        response.status_code = 200
        request.return_value = response
        http_request(host_only, "/my/endpoint", "GET")
        request.assert_called_with(
            "GET",
            "http://my-host/my/endpoint",
            allow_redirects=True,
            verify="/some/path",
            headers=expected_headers,
            timeout=120,
        )