35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
proxy.py
|
|
~~~~~~~~
|
|
⚡⚡⚡ Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on
|
|
Network monitoring, controls & Application development, testing, debugging.
|
|
|
|
:copyright: (c) 2013-present by Abhinav Singh and contributors.
|
|
:license: BSD, see LICENSE for more details.
|
|
"""
|
|
from typing import Type
|
|
from proxy.http.proxy import HttpProxyBasePlugin
|
|
|
|
from proxy.plugin import ModifyPostDataPlugin, ProposedRestApiPlugin, RedirectToCustomServerPlugin, \
|
|
FilterByUpstreamHostPlugin, CacheResponsesPlugin, ManInTheMiddlePlugin, FilterByURLRegexPlugin
|
|
|
|
|
|
def get_plugin_by_test_name(test_name: str) -> Type[HttpProxyBasePlugin]:
|
|
plugin: Type[HttpProxyBasePlugin] = ModifyPostDataPlugin
|
|
if test_name == 'test_modify_post_data_plugin':
|
|
plugin = ModifyPostDataPlugin
|
|
elif test_name == 'test_proposed_rest_api_plugin':
|
|
plugin = ProposedRestApiPlugin
|
|
elif test_name == 'test_redirect_to_custom_server_plugin':
|
|
plugin = RedirectToCustomServerPlugin
|
|
elif test_name == 'test_filter_by_upstream_host_plugin':
|
|
plugin = FilterByUpstreamHostPlugin
|
|
elif test_name == 'test_cache_responses_plugin':
|
|
plugin = CacheResponsesPlugin
|
|
elif test_name == 'test_man_in_the_middle_plugin':
|
|
plugin = ManInTheMiddlePlugin
|
|
elif test_name == 'test_filter_by_url_regex_plugin':
|
|
plugin = FilterByURLRegexPlugin
|
|
return plugin
|