X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/252fe42612f60641abbe44a24e460c989859a148..5f09ba4e10b52b5154fb3e9211b8ec5fcfe82d91:/nominatim/server/starlette/server.py diff --git a/nominatim/server/starlette/server.py b/nominatim/server/starlette/server.py index 2bcc8df5..5567ac9c 100644 --- a/nominatim/server/starlette/server.py +++ b/nominatim/server/starlette/server.py @@ -50,6 +50,19 @@ class ParamWrapper(api_impl.ASGIAdaptor): return Response(output, status_code=status, media_type=self.content_type) + def base_uri(self) -> str: + scheme = self.request.url.scheme + host = self.request.url.hostname + port = self.request.url.port + root = self.request.scope['root_path'] + if (scheme == 'http' and port == 80) or (scheme == 'https' and port == 443): + port = None + if port is not None: + return f"{scheme}://{host}:{port}{root}" + + return f"{scheme}://{host}{root}" + + def config(self) -> Configuration: return cast(Configuration, self.request.app.state.API.config) @@ -114,7 +127,10 @@ def get_application(project_dir: Path, middleware = [] if config.get_bool('CORS_NOACCESSCONTROL'): - middleware.append(Middleware(CORSMiddleware, allow_origins=['*'])) + middleware.append(Middleware(CORSMiddleware, + allow_origins=['*'], + allow_methods=['GET', 'OPTIONS'], + max_age=86400)) log_file = config.LOG_FILE if log_file: