diff options
Diffstat (limited to 'src/hydrilla/proxy/policies/payload_resource.py')
-rw-r--r-- | src/hydrilla/proxy/policies/payload_resource.py | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/src/hydrilla/proxy/policies/payload_resource.py b/src/hydrilla/proxy/policies/payload_resource.py index 07226cb..d8e5ea5 100644 --- a/src/hydrilla/proxy/policies/payload_resource.py +++ b/src/hydrilla/proxy/policies/payload_resource.py @@ -56,12 +56,9 @@ import dataclasses as dc import typing as t import json -from threading import Lock from base64 import b64encode from urllib.parse import quote, parse_qs, urlparse, urlencode, urljoin -import jinja2 - from ...translations import smart_gettext as _ from ...url_patterns import ParsedUrl from ...versions import haketilo_version @@ -71,15 +68,6 @@ from . import base from .payload import PayloadAwarePolicy, PayloadAwarePolicyFactory -loader = jinja2.PackageLoader(__package__, package_path='injectable_scripts') -jinja_env = jinja2.Environment( - loader = loader, - lstrip_blocks = True, - autoescape = False -) -jinja_lock = Lock() - - def encode_string_for_js(string: str) -> str: return b64encode(quote(string).encode()).decode() @@ -274,8 +262,10 @@ class PayloadResourcePolicy(PayloadAwarePolicy): request_info: http_messages.RequestInfo ) -> MessageInfo: if path[0] == 'page_init_script.js': - with jinja_lock: - template = jinja_env.get_template('page_init_script.js.jinja') + with base.jinja_lock: + template = base.jinja_env.get_template( + 'page_init_script.js.jinja' + ) token = self.payload_data.unique_token base_url = self._assets_base_url(request_info.url) ver_str = json.dumps(haketilo_version) @@ -396,14 +386,16 @@ class PayloadResourcePolicyFactory(PayloadAwarePolicyFactory): def make_policy(self, haketilo_state: state.HaketiloState) \ -> t.Union[PayloadResourcePolicy, BlockedResponsePolicy]: """....""" + haketilo_settings = haketilo_state.get_settings() + try: payload_data = self.payload_ref.get_data() except state.MissingItemError: - return BlockedResponsePolicy() + return BlockedResponsePolicy(haketilo_settings) if not payload_data.explicitly_enabled and \ - haketilo_state.get_settings().mapping_use_mode != \ + haketilo_settings.mapping_use_mode != \ state.MappingUseMode.AUTO: - return BlockedResponsePolicy() + return BlockedResponsePolicy(haketilo_settings) - return PayloadResourcePolicy(payload_data) + return PayloadResourcePolicy(haketilo_settings, payload_data) |