Skip to content

Commit

Permalink
add server header and status code in middleware (#204)
Browse files Browse the repository at this point in the history
* add server header in middleware

* fix #205
  • Loading branch information
teeann authored and rnehra01 committed Apr 3, 2019
1 parent 581739d commit fe391ae
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
11 changes: 8 additions & 3 deletions snare/middlewares.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@

class SnareMiddleware():

def __init__(self, file_name):
def __init__(self, file_name, server_header):
self.error_404 = file_name
self.server_header = server_header

async def handle_404(self, request):
return aiohttp_jinja2.render_template(self.error_404, request, {})
Expand All @@ -19,9 +20,13 @@ def create_error_middleware(self, overrides):
async def error_middleware(request, handler):
try:
response = await handler(request)
override = overrides.get(response.status)
status = response.status
override = overrides.get(status)
if override:
return await override(request)
response = await override(request)
response.headers['Server'] = self.server_header
response.set_status(status)
return response
return response
except web.HTTPException as ex:
override = overrides.get(ex.status)
Expand Down
5 changes: 4 additions & 1 deletion snare/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,10 @@ async def start(self):
aiohttp_jinja2.setup(
app, loader=jinja2.FileSystemLoader(self.dir)
)
middleware = SnareMiddleware(self.meta['/status_404']['hash'])
middleware = SnareMiddleware(
self.meta['/status_404']['hash'],
self.run_args.server_header
)
middleware.setup_middlewares(app)

self.runner = web.AppRunner(app)
Expand Down

0 comments on commit fe391ae

Please sign in to comment.