File tree 4 files changed +70
-3
lines changed
4 files changed +70
-3
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ def __init__(self, data):
31
31
data [self .TIMESTAMP_FIELD ] = get_current_timestamp ()
32
32
self ._data = data
33
33
self ._salt = self ._calculate_salt (data )
34
- self ._signer = Signer (self ._salt )
34
+ self ._signer = Signer (salt = self ._salt )
35
35
36
36
def _calculate_signature (self , data ):
37
37
if self .SIGNATURE_FIELD in data :
Original file line number Diff line number Diff line change @@ -67,6 +67,27 @@ def test_no_password_ok(self):
67
67
)
68
68
69
69
70
+ @override_settings (REST_REGISTRATION = REST_REGISTRATION_WITH_VERIFICATION )
71
+ class RegisterSignerTestCase (TestCase ):
72
+
73
+ def test_signer_with_different_secret_keys (self ):
74
+ user = self .create_test_user (is_active = False )
75
+ data_to_sign = {'user_id' : user .pk }
76
+ secrets = [
77
+ '#0ka!t#6%28imjz+2t%l(()yu)tg93-1w%$du0*po)*@l+@+4h' ,
78
+ 'feb7tjud7m=91$^mrk8dq&nz(0^!6+1xk)%gum#oe%(n)8jic7' ,
79
+ ]
80
+ signatures = []
81
+ for secret in secrets :
82
+ with override_settings (
83
+ SECRET_KEY = secret ):
84
+ signer = RegisterSigner (data_to_sign )
85
+ data = signer .get_signed_data ()
86
+ signatures .append (data [signer .SIGNATURE_FIELD ])
87
+
88
+ assert signatures [0 ] != signatures [1 ]
89
+
90
+
70
91
def build_custom_verification_url (signer ):
71
92
base_url = signer .get_base_url ()
72
93
signed_data = signer .get_signed_data ()
Original file line number Diff line number Diff line change 6
6
from rest_framework .test import force_authenticate
7
7
8
8
from rest_registration .api .views .register_email import RegisterEmailSigner
9
- from tests .utils import shallow_merge_dicts
9
+ from tests .utils import TestCase , shallow_merge_dicts
10
10
11
11
from .base import APIViewTestCase
12
12
18
18
}
19
19
20
20
21
+ @override_settings (REST_REGISTRATION = REST_REGISTRATION_WITH_EMAIL_VERIFICATION )
22
+ class RegisterEmailSignerTestCase (TestCase ):
23
+
24
+ def test_signer_with_different_secret_keys (self ):
25
+ email = 'testuser1@example.com'
26
+ user = self .create_test_user (is_active = False )
27
+ data_to_sign = {
28
+ 'user_id' : user .pk ,
29
+ 'email' : email ,
30
+ }
31
+ secrets = [
32
+ '#0ka!t#6%28imjz+2t%l(()yu)tg93-1w%$du0*po)*@l+@+4h' ,
33
+ 'feb7tjud7m=91$^mrk8dq&nz(0^!6+1xk)%gum#oe%(n)8jic7' ,
34
+ ]
35
+ signatures = []
36
+ for secret in secrets :
37
+ with override_settings (
38
+ SECRET_KEY = secret ):
39
+ signer = RegisterEmailSigner (data_to_sign )
40
+ data = signer .get_signed_data ()
41
+ signatures .append (data [signer .SIGNATURE_FIELD ])
42
+
43
+ assert signatures [0 ] != signatures [1 ]
44
+
45
+
21
46
class BaseRegisterEmailViewTestCase (APIViewTestCase ):
22
47
23
48
def setUp (self ):
Original file line number Diff line number Diff line change 6
6
from rest_framework import status
7
7
8
8
from rest_registration .api .views .reset_password import ResetPasswordSigner
9
- from tests .utils import shallow_merge_dicts
9
+ from tests .utils import TestCase , shallow_merge_dicts
10
10
11
11
from .base import APIViewTestCase
12
12
18
18
}
19
19
20
20
21
+ @override_settings (REST_REGISTRATION = REST_REGISTRATION_WITH_RESET_PASSWORD )
22
+ class ResetPasswordSignerTestCase (TestCase ):
23
+
24
+ def test_signer_with_different_secret_keys (self ):
25
+ user = self .create_test_user (is_active = False )
26
+ data_to_sign = {'user_id' : user .pk }
27
+ secrets = [
28
+ '#0ka!t#6%28imjz+2t%l(()yu)tg93-1w%$du0*po)*@l+@+4h' ,
29
+ 'feb7tjud7m=91$^mrk8dq&nz(0^!6+1xk)%gum#oe%(n)8jic7' ,
30
+ ]
31
+ signatures = []
32
+ for secret in secrets :
33
+ with override_settings (
34
+ SECRET_KEY = secret ):
35
+ signer = ResetPasswordSigner (data_to_sign )
36
+ data = signer .get_signed_data ()
37
+ signatures .append (data [signer .SIGNATURE_FIELD ])
38
+
39
+ assert signatures [0 ] != signatures [1 ]
40
+
41
+
21
42
@override_settings (
22
43
REST_REGISTRATION = REST_REGISTRATION_WITH_RESET_PASSWORD ,
23
44
)
You can’t perform that action at this time.
0 commit comments