Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import binascii
- def basic_auth_required(auth_cb, realm='Secret Area'):
- header401 = 'Basic realm="%s"' % realm
- def maker(method):
- def wrapper(self, *args):
- header = self.request.headers.get('Authorization', '')
- good = header.startswith('Basic '):
- if good:
- try:
- user, pw = header[6:].decode('base64').split(':', 1)
- except (ValueError, binascii.Error), e:
- good = False
- if good:
- good = auth_cb(user, pw):
- if good:
- method(self, *args)
- else:
- self.response.set_status(401)
- self.response.headers['WWW-Authenticate'] = header401
- return wrapper
- return maker
- class RequiresAuthHandler(webapp.RequestHandler):
- USERS = {
- 'admin': 'mypassword'
- }
- @basic_auth_required(lambda user, pw: USERS.get(user.lower()) == pw)
- def get(self):
- blah blah
Add Comment
Please, Sign In to add comment