Skip to content
This repository was archived by the owner on Mar 8, 2019. It is now read-only.

Commit 956aeeb

Browse files
committed
Return 405 Method Not Allowed when receive POST and PATCH requests
1 parent 1d13f69 commit 956aeeb

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

wsgi_static_middleware.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,21 @@ def _get_body(filename, method, block_size, charset):
6363

6464
# View functions
6565
def static_file_view(env, start_response, filename, block_size, charset):
66-
headers = Headers([])
66+
method = env['REQUEST_METHOD'].upper()
67+
if method not in ('HEAD', 'GET'):
68+
start_response('405 METHOD NOT ALLOWED', [('Content-Type', 'text/plain; UTF-8')])
69+
return [b'']
6770

6871
mimetype, encoding = mimetypes.guess_type(filename)
72+
headers = Headers([])
6973
headers.add_header('Content-Encodings', encoding)
7074
headers.add_header('Content-Type', get_content_type(mimetype, charset))
7175
headers.add_header('Content-Length', get_content_length(filename))
7276
headers.add_header('Last-Modified', generate_last_modified())
7377
headers.add_header("Accept-Ranges", "bytes")
7478

7579
start_response('200 OK', headers.items())
76-
return _get_body(filename, env['REQUEST_METHOD'].upper(),
77-
block_size, charset)
80+
return _get_body(filename, method, block_size, charset)
7881

7982

8083
def http404(env, start_response):

0 commit comments

Comments
 (0)