|
43 | 43 | validation_error_definition,
|
44 | 44 | validation_error_response_definition,
|
45 | 45 | )
|
46 |
| -from aws_lambda_powertools.event_handler.util import _FrozenDict |
| 46 | +from aws_lambda_powertools.event_handler.util import _FrozenDict, extract_origin_header |
47 | 47 | from aws_lambda_powertools.shared.cookies import Cookie
|
48 | 48 | from aws_lambda_powertools.shared.functions import powertools_dev_is_set
|
49 | 49 | from aws_lambda_powertools.shared.json_encoder import Encoder
|
|
58 | 58 | VPCLatticeEventV2,
|
59 | 59 | )
|
60 | 60 | from aws_lambda_powertools.utilities.data_classes.common import BaseProxyEvent
|
61 |
| -from aws_lambda_powertools.utilities.data_classes.shared_functions import get_header_value |
62 | 61 | from aws_lambda_powertools.utilities.typing import LambdaContext
|
63 | 62 |
|
64 | 63 | logger = logging.getLogger(__name__)
|
@@ -218,27 +217,6 @@ def to_dict(self, origin: Optional[str]) -> Dict[str, str]:
|
218 | 217 | headers["Access-Control-Allow-Credentials"] = "true"
|
219 | 218 | return headers
|
220 | 219 |
|
221 |
| - @staticmethod |
222 |
| - def extract_origin_header(resolver_headers: Dict): |
223 |
| - """ |
224 |
| - Extracts the 'origin' or 'Origin' header from the provided resolver headers. |
225 |
| -
|
226 |
| - The 'origin' or 'Origin' header can be either a single header or a multi-header. |
227 |
| -
|
228 |
| - Args: |
229 |
| - resolver_headers (Dict): A dictionary containing the headers. |
230 |
| -
|
231 |
| - Returns: |
232 |
| - Optional[str]: The value(s) of the origin header or None. |
233 |
| - """ |
234 |
| - resolved_header = get_header_value(resolver_headers, "origin", None, case_sensitive=False) |
235 |
| - if isinstance(resolved_header, str): |
236 |
| - return resolved_header |
237 |
| - if isinstance(resolved_header, list): |
238 |
| - return resolved_header[0] |
239 |
| - |
240 |
| - return resolved_header |
241 |
| - |
242 | 220 |
|
243 | 221 | class Response(Generic[ResponseT]):
|
244 | 222 | """Response data class that provides greater control over what is returned from the proxy event"""
|
@@ -804,7 +782,7 @@ def __init__(
|
804 | 782 |
|
805 | 783 | def _add_cors(self, event: ResponseEventT, cors: CORSConfig):
|
806 | 784 | """Update headers to include the configured Access-Control headers"""
|
807 |
| - extracted_origin_header = cors.extract_origin_header(event.resolved_headers_field) |
| 785 | + extracted_origin_header = extract_origin_header(event.resolved_headers_field) |
808 | 786 | self.response.headers.update(cors.to_dict(extracted_origin_header))
|
809 | 787 |
|
810 | 788 | def _add_cache_control(self, cache_control: str):
|
@@ -2152,7 +2130,7 @@ def _not_found(self, method: str) -> ResponseBuilder:
|
2152 | 2130 | headers = {}
|
2153 | 2131 | if self._cors:
|
2154 | 2132 | logger.debug("CORS is enabled, updating headers.")
|
2155 |
| - extracted_origin_header = self._cors.extract_origin_header(self.current_event.resolved_headers_field) |
| 2133 | + extracted_origin_header = extract_origin_header(self.current_event.resolved_headers_field) |
2156 | 2134 | headers.update(self._cors.to_dict(extracted_origin_header))
|
2157 | 2135 |
|
2158 | 2136 | if method == "OPTIONS":
|
|
0 commit comments