djangohmac package

Submodules

djangohmac.decorators module

djangohmac.decorators.auth(func=None, only=None)

Route decorator. Validates an incoming request can access the route function.

Keyword Args:
only (list): Optional list of clients that can access the view
class SignedView(View):

    @decorators.auth
    def get(self, request):
        return HttpResponse("For all services")

    @decorators.auth(only=['serviceA'])
    def post(self, request):
        return HttpResponse("Only for service A")

djangohmac.middleware module

class djangohmac.middleware.HmacMiddleware

Bases: object

Uses global signature HMAC_SECRET defined in settings

process_request(request)

djangohmac.sign module

class djangohmac.sign.Hmac

Bases: object

abort()

Called when validation failed.

Raises:
PermissionDenied()
get_signature(request)

Get signature from djagno requests

Arguments:
request: Django request
Returns:
string: HMAC signature
Raises:
SecretKeyIsNotSet
hmac_disarm
hmac_key
make_hmac(data='', key=None)

Generates HMAC key

Arguments:
data (str): HMAC message key (str): secret key of another app
make_hmac_for(name, data='')

Generates HMAC key for named key

Arguments:
name (str): key name from HMAC_SECRETS dict data (str): HMAC message
Raises:
UnknownKeyName
validate_multiple_signatures(key_name, signature, request)

Validate signature from djagno request. But it takes key from HMAC_SECRETS list

Arguments:
request (request): Django request class only (list): Restricted only for this list of service
Returns:
boolen
Raises:
InvalidSignature
validate_signature(request, only=None)

Validate signate in given request.

Arguments:
request: Django request only: list of keys from HMAC_SECRETS to restrict signatures
Returns:
boolean: True when signature is valid otherwice False
Raises:
InvalidSignature SecretKeyIsNotSet
validate_single_signature(request)

Validate signature from djagno request

Arguments:
request (request): Django request class
Returns:
boolen
Raises:
InvalidSignature
exception djangohmac.sign.HmacException

Bases: exceptions.Exception

exception djangohmac.sign.InvalidSignature

Bases: djangohmac.sign.HmacException

exception djangohmac.sign.SecretKeyIsNotSet

Bases: djangohmac.sign.HmacException

exception djangohmac.sign.UnknownKeyName

Bases: djangohmac.sign.HmacException

djangohmac.sign.decode_string(value)
djangohmac.sign.encode_string(value)

Module contents