Skip to content

Commit

Permalink
request.url now respects force_https_urls, closes #781
Browse files Browse the repository at this point in the history
  • Loading branch information
simonw committed May 28, 2020
1 parent 40885ef commit 7bb30c1
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions datasette/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,13 @@ async def route_path(self, scope, receive, send, path):
base_url = self.ds.config("base_url")
if base_url != "/" and path.startswith(base_url):
path = "/" + path[len(base_url) :]
# Apply force_https_urls, if set
if (
self.ds.config("force_https_urls")
and scope["type"] == "http"
and scope.get("scheme") != "https"
):
scope = dict(scope, scheme="https")
return await super().route_path(scope, receive, send, path)

async def handle_404(self, scope, receive, send, exception=None):
Expand Down
3 changes: 3 additions & 0 deletions tests/plugins/my_plugin_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ def render_cell(value, database):

@hookimpl
def extra_template_vars(template, database, table, view_name, request, datasette):
# This helps unit tests that want to run assertions against the request object:
datasette._last_request = request

async def query_database(sql):
first_db = list(datasette.databases.keys())[0]
return (await datasette.execute(first_db, sql)).rows[0][0]
Expand Down
4 changes: 4 additions & 0 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1676,6 +1676,10 @@ def test_config_force_https_urls():
"toggle_url"
].startswith("https://")
assert response.json["suggested_facets"][0]["toggle_url"].startswith("https://")
# Also confirm that request.url and request.scheme are set correctly
response = client.get("/")
assert client.ds._last_request.url.startswith("https://")
assert client.ds._last_request.scheme == "https"


def test_infinity_returned_as_null(app_client):
Expand Down

0 comments on commit 7bb30c1

Please sign in to comment.