Guest User

Untitled

a guest
Jul 21st, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. import binascii
  2.  
  3. def basic_auth_required(auth_cb, realm='Secret Area'):
  4. header401 = 'Basic realm="%s"' % realm
  5.  
  6. def maker(method):
  7. def wrapper(self, *args):
  8. header = self.request.headers.get('Authorization', '')
  9.  
  10. good = header.startswith('Basic '):
  11. if good:
  12. try:
  13. user, pw = header[6:].decode('base64').split(':', 1)
  14. except (ValueError, binascii.Error), e:
  15. good = False
  16.  
  17. if good:
  18. good = auth_cb(user, pw):
  19.  
  20. if good:
  21. method(self, *args)
  22. else:
  23. self.response.set_status(401)
  24. self.response.headers['WWW-Authenticate'] = header401
  25. return wrapper
  26. return maker
  27.  
  28. class RequiresAuthHandler(webapp.RequestHandler):
  29. USERS = {
  30. 'admin': 'mypassword'
  31. }
  32.  
  33. @basic_auth_required(lambda user, pw: USERS.get(user.lower()) == pw)
  34. def get(self):
  35. blah blah
Add Comment
Please, Sign In to add comment