aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/policies/payload_resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/hydrilla/proxy/policies/payload_resource.py')
-rw-r--r--src/hydrilla/proxy/policies/payload_resource.py28
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)