Selaa lähdekoodia

refactor(api/core/workflow/nodes/http_request): Remove `mask_authorization_header` because its alwary true. (#6379)

tags/0.6.15
-LAN- 1 vuosi sitten
vanhempi
commit
fc37887a21
No account linked to committer's email address

+ 0
- 1
api/core/workflow/nodes/http_request/entities.py Näytä tiedosto

params: str params: str
body: Optional[HttpRequestNodeBody] = None body: Optional[HttpRequestNodeBody] = None
timeout: Optional[HttpRequestNodeTimeout] = None timeout: Optional[HttpRequestNodeTimeout] = None
mask_authorization_header: Optional[bool] = True

+ 10
- 11
api/core/workflow/nodes/http_request/http_executor.py Näytä tiedosto

# validate response # validate response
return self._validate_and_parse_response(response) return self._validate_and_parse_response(response)


def to_raw_request(self, mask_authorization_header: Optional[bool] = True) -> str:
def to_raw_request(self) -> str:
""" """
convert to raw request convert to raw request
""" """


headers = self._assembling_headers() headers = self._assembling_headers()
for k, v in headers.items(): for k, v in headers.items():
if mask_authorization_header:
# get authorization header
if self.authorization.type == 'api-key':
authorization_header = 'Authorization'
if self.authorization.config and self.authorization.config.header:
authorization_header = self.authorization.config.header

if k.lower() == authorization_header.lower():
raw_request += f'{k}: {"*" * len(v)}\n'
continue
# get authorization header
if self.authorization.type == 'api-key':
authorization_header = 'Authorization'
if self.authorization.config and self.authorization.config.header:
authorization_header = self.authorization.config.header

if k.lower() == authorization_header.lower():
raw_request += f'{k}: {"*" * len(v)}\n'
continue


raw_request += f'{k}: {v}\n' raw_request += f'{k}: {v}\n'



+ 2
- 6
api/core/workflow/nodes/http_request/http_request_node.py Näytä tiedosto

process_data = {} process_data = {}
if http_executor: if http_executor:
process_data = { process_data = {
'request': http_executor.to_raw_request(
mask_authorization_header=node_data.mask_authorization_header
),
'request': http_executor.to_raw_request(),
} }
return NodeRunResult( return NodeRunResult(
status=WorkflowNodeExecutionStatus.FAILED, status=WorkflowNodeExecutionStatus.FAILED,
'files': files, 'files': files,
}, },
process_data={ process_data={
'request': http_executor.to_raw_request(
mask_authorization_header=node_data.mask_authorization_header,
),
'request': http_executor.to_raw_request(),
}, },
) )



+ 6
- 1
api/core/workflow/utils/variable_template_parser.py Näytä tiedosto

import re import re
from collections.abc import Mapping
from typing import Any


from core.workflow.entities.variable_entities import VariableSelector from core.workflow.entities.variable_entities import VariableSelector




return variable_selectors return variable_selectors


def format(self, inputs: dict, remove_template_variables: bool = True) -> str:
def format(self, inputs: Mapping[str, Any], remove_template_variables: bool = True) -> str:
""" """
Formats the template string by replacing the template variables with their corresponding values. Formats the template string by replacing the template variables with their corresponding values.


def replacer(match): def replacer(match):
key = match.group(1) key = match.group(1)
value = inputs.get(key, match.group(0)) # return original matched string if key not found value = inputs.get(key, match.group(0)) # return original matched string if key not found

if value is None:
value = ''
# convert the value to string # convert the value to string
if isinstance(value, list | dict | bool | int | float): if isinstance(value, list | dict | bool | int | float):
value = str(value) value = str(value)

+ 0
- 16
api/tests/integration_tests/workflow/nodes/test_http.py Näytä tiedosto

'headers': 'X-Header:123', 'headers': 'X-Header:123',
'params': 'A:b', 'params': 'A:b',
'body': None, 'body': None,
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)


data = result.process_data.get('request', '') data = result.process_data.get('request', '')


assert '?A=b' in data assert '?A=b' in data
assert 'api-key: Basic ak-xxx' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data




'headers': 'X-Header:123', 'headers': 'X-Header:123',
'params': 'A:b', 'params': 'A:b',
'body': None, 'body': None,
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)




assert '?A=b' in data assert '?A=b' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data
assert 'X-Auth: Auth' in data




@pytest.mark.parametrize('setup_http_mock', [['none']], indirect=True) @pytest.mark.parametrize('setup_http_mock', [['none']], indirect=True)
'headers': 'X-Header:123\nX-Header2:{{#a.b123.args2#}}', 'headers': 'X-Header:123\nX-Header2:{{#a.b123.args2#}}',
'params': 'A:b\nTemplate:{{#a.b123.args2#}}', 'params': 'A:b\nTemplate:{{#a.b123.args2#}}',
'body': None, 'body': None,
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)




assert '?A=b' in data assert '?A=b' in data
assert 'Template=2' in data assert 'Template=2' in data
assert 'api-key: Basic ak-xxx' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data
assert 'X-Header2: 2' in data assert 'X-Header2: 2' in data


'type': 'json', 'type': 'json',
'data': '{"a": "{{#a.b123.args1#}}"}' 'data': '{"a": "{{#a.b123.args1#}}"}'
}, },
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)


data = result.process_data.get('request', '') data = result.process_data.get('request', '')


assert '{"a": "1"}' in data assert '{"a": "1"}' in data
assert 'api-key: Basic ak-xxx' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data




'type': 'x-www-form-urlencoded', 'type': 'x-www-form-urlencoded',
'data': 'a:{{#a.b123.args1#}}\nb:{{#a.b123.args2#}}' 'data': 'a:{{#a.b123.args1#}}\nb:{{#a.b123.args2#}}'
}, },
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)


data = result.process_data.get('request', '') data = result.process_data.get('request', '')


assert 'a=1&b=2' in data assert 'a=1&b=2' in data
assert 'api-key: Basic ak-xxx' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data




'type': 'form-data', 'type': 'form-data',
'data': 'a:{{#a.b123.args1#}}\nb:{{#a.b123.args2#}}' 'data': 'a:{{#a.b123.args1#}}\nb:{{#a.b123.args2#}}'
}, },
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)


assert '1' in data assert '1' in data
assert 'form-data; name="b"' in data assert 'form-data; name="b"' in data
assert '2' in data assert '2' in data
assert 'api-key: Basic ak-xxx' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data




'type': 'none', 'type': 'none',
'data': '123123123' 'data': '123123123'
}, },
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)


result = node.run(pool) result = node.run(pool)
data = result.process_data.get('request', '') data = result.process_data.get('request', '')


assert 'api-key: Basic ak-xxx' in data
assert 'X-Header: 123' in data assert 'X-Header: 123' in data
assert '123123123' not in data assert '123123123' not in data


'body': None, 'body': None,
'params': '', 'params': '',
'headers': 'X-Header:123', 'headers': 'X-Header:123',
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)


'type': 'form-data', 'type': 'form-data',
'data': 'Referer:http://example5.com\nRedirect:http://example6.com' 'data': 'Referer:http://example5.com\nRedirect:http://example6.com'
}, },
'mask_authorization_header': False,
} }
}, **BASIC_NODE_DATA) }, **BASIC_NODE_DATA)



Loading…
Peruuta
Tallenna