I have a small Flask application that I want to run on AWS Elastic Beanstalk.
The application deploys and runs fine but I've noticed that a custom HTTP Header (HTTP_CUSTOM_TOKEN) is not present in request.headers
.
I'm assuming I'm missing something from the Apache configuration but am not very familiar with that environment.
You need to enable the WSGIPassAuthorization. If you do not specifically enable auth forwarding, apache will consume the required headers and your app won't receive it.
Add this to your *.config file in .ebextensions folder.
commands: WSGIPassAuthorization: command: sed -i.bak '/WSGIScriptAlias/ a WSGIPassAuthorization On' config.py cwd: /opt/elasticbeanstalk/hooks
Remove underscores from the header variables, example:-
header_var_val = "some value"
replace it with --
headervarval = "some value"
What you need is something similar to what @Fartash suggested, just slightly different.
Add
.ebextensions/python.config
:as explained at Using the AWS Elastic Beanstalk Python Platform