def serve(request, signature, image_id, filter_spec): image = get_object_or_404(get_image_model(), id=image_id) if not verify_signature(signature.encode(), image_id, filter_spec): raise PermissionDenied try: rendition = image.get_rendition(filter_spec) rendition.file.open('rb') return HttpResponse(FileWrapper(rendition.file), content_type='image/jpeg') except InvalidFilterSpecError: return HttpResponse("Invalid filter spec: " + filter_spec, content_type='text/plain', status=400)
def serve(request, signature, image_id, filter_spec): image = get_object_or_404(get_image_model(), id=image_id) if not verify_signature(signature.encode(), image_id, filter_spec): raise PermissionDenied try: rendition = image.get_rendition(filter_spec) rendition.file.open('rb') return HttpResponse(FileWrapper(rendition.file), content_type='image/jpeg') except InvalidFilterSpecError: return HttpResponse("Invalid filter spec: " + filter_spec, content_type='text/plain', status=400)
def test_signature_changes_on_filter_spec(self): self.assertFalse(verify_signature(b'xnZOzQyUg6pkfciqcfRJRosOrGg=', 100, 'fill-800x700'))
def test_signature_changes_on_image_id(self): self.assertFalse(verify_signature(b'xnZOzQyUg6pkfciqcfRJRosOrGg=', 200, 'fill-800x600'))
def test_signature_verification(self): self.assertTrue(verify_signature(b'xnZOzQyUg6pkfciqcfRJRosOrGg=', 100, 'fill-800x600'))
def test_signature_verification(self): self.assertTrue(verify_signature(b"xnZOzQyUg6pkfciqcfRJRosOrGg=", 100, "fill-800x600"))
def test_signature_changes_on_filter_spec(self): self.assertFalse( verify_signature(b'xnZOzQyUg6pkfciqcfRJRosOrGg=', 100, 'fill-800x700'))
def test_signature_changes_on_image_id(self): self.assertFalse( verify_signature(b'xnZOzQyUg6pkfciqcfRJRosOrGg=', 200, 'fill-800x600'))
def test_signature_verification(self): self.assertTrue( verify_signature(b'xnZOzQyUg6pkfciqcfRJRosOrGg=', 100, 'fill-800x600'))