Fixed #21363 -- Added datetime.timedelta support to TimestampSigner.unsign().

This commit is contained in:
Berker Peksag 2014-11-15 12:03:04 +02:00 committed by Tim Graham
parent fa680ce1e2
commit d2d6c0c097
4 changed files with 25 additions and 2 deletions

View file

@ -114,6 +114,7 @@ Verifying timestamped values
timestamp to the value. This allows you to confirm that a signed value was
created within a specified period of time::
>>> from datetime import timedelta
>>> from django.core.signing import TimestampSigner
>>> signer = TimestampSigner()
>>> value = signer.sign('hello')
@ -126,6 +127,8 @@ created within a specified period of time::
SignatureExpired: Signature age 15.5289158821 > 10 seconds
>>> signer.unsign(value, max_age=20)
'hello'
>>> signer.unsign(value, max_age=timedelta(seconds=20))
'hello'
.. class:: TimestampSigner(key=None, sep=':', salt=None)
@ -136,7 +139,12 @@ created within a specified period of time::
.. method:: unsign(value, max_age=None)
Checks if ``value`` was signed less than ``max_age`` seconds ago,
otherwise raises ``SignatureExpired``.
otherwise raises ``SignatureExpired``. The ``max_age`` parameter can
accept an integer or a :py:class:`datetime.timedelta` object.
.. versionchanged:: 1.8
Previously, the ``max_age`` parameter only accepted an integer.
Protecting complex data structures
----------------------------------