Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. import base64
  2. import os
  3.  
  4. from flask import Flask, Response
  5. from flask import abort, request
  6.  
  7. app = Flask(__name__)
  8.  
  9.  
  10. @app.route("/")
  11. @app.route("/headers")
  12. def basic_auth():
  13. if 'authorization' in request.headers:
  14. authdata = parse_authdata(request.headers['authorization'])
  15. else:
  16. abort(401)
  17.  
  18. return Response('authdata = {!r}\n'.format(authdata),
  19. mimetype='text/plain')
  20.  
  21.  
  22. @app.errorhandler(401)
  23. def custom_401(error):
  24. return Response('Access denied', 401, {'www-authenticate':'Basic realm="Test realm"'})
  25.  
  26.  
  27. def parse_authdata(value):
  28. try:
  29. auth_type, auth_info = value.split(None, 1)
  30. auth_type = auth_type.lower()
  31. except ValueError:
  32. return
  33. if auth_type != 'basic':
  34. return
  35. return base64.standard_b64decode(auth_info)
  36.  
  37.  
  38. if __name__ == "__main__":
  39. port = int(os.environ.get('PORT', 5000))
  40. app.run(host='0.0.0.0', port=port)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement