Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. class IsAuthenticated(object):
  2.     @staticmethod
  3.     def has_permission(permission):
  4.         def real_decorator(function):
  5.             def function_wrapper(self, request, *args, **kwargs):
  6.                 try:
  7.                     x_key = request.META['HTTP_X_KEY']
  8.                     x_route = request.META['HTTP_X_ROUTE']
  9.                     x_signature = request.META['HTTP_X_SIGNATURE']
  10.  
  11.                     x_route = x_route.split(';')
  12.                     x_route.sort()
  13.                     x_route = ';'.join(x_route)
  14.                     x_route = str.encode(x_route)
  15.  
  16.                     signature = hmac.new(x_route, str.encode(x_key))
  17.                     if x_signature == signature.hexdigest():
  18.                         return function(self, request, *args, **kwargs)
  19.                     raise PermissionDenied()
  20.                 except Exception as e:
  21.                     print(str(e))
  22.                     raise PermissionDenied()
  23.                 raise PermissionDenied()
  24.             return function_wrapper
  25.         return real_decorator
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement