mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-27 08:03:57 +01:00
Make CI use a dummy password hasher for all tests (#22983)
During the recent hash algorithm change it became clear that the choice of password hash algorithm plays a role in the time taken for CI to run. Therefore as attempt to improve CI we should consider using a dummy hashing algorithm instead of a real hashing algorithm. This PR creates a dummy algorithm which is then set as the default hashing algorithm during tests that use the fixtures. This hopefully will cause a reduction in the time it takes for CI to run. --------- Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
2b3f12f6fd
commit
ef11d41639
11 changed files with 160 additions and 74 deletions
|
@ -8,8 +8,8 @@
|
||||||
email: user1@example.com
|
email: user1@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user1
|
login_name: user1
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
email: user2@example.com
|
email: user2@example.com
|
||||||
keep_email_private: true
|
keep_email_private: true
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user2
|
login_name: user2
|
||||||
|
@ -82,8 +82,8 @@
|
||||||
email: user3@example.com
|
email: user3@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: onmention
|
email_notifications_preference: onmention
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user3
|
login_name: user3
|
||||||
|
@ -119,8 +119,8 @@
|
||||||
email: user4@example.com
|
email: user4@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: onmention
|
email_notifications_preference: onmention
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user4
|
login_name: user4
|
||||||
|
@ -156,8 +156,8 @@
|
||||||
email: user5@example.com
|
email: user5@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user5
|
login_name: user5
|
||||||
|
@ -193,8 +193,8 @@
|
||||||
email: user6@example.com
|
email: user6@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user6
|
login_name: user6
|
||||||
|
@ -230,8 +230,8 @@
|
||||||
email: user7@example.com
|
email: user7@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: disabled
|
email_notifications_preference: disabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user7
|
login_name: user7
|
||||||
|
@ -267,8 +267,8 @@
|
||||||
email: user8@example.com
|
email: user8@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user8
|
login_name: user8
|
||||||
|
@ -304,8 +304,8 @@
|
||||||
email: user9@example.com
|
email: user9@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: onmention
|
email_notifications_preference: onmention
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user9
|
login_name: user9
|
||||||
|
@ -341,8 +341,8 @@
|
||||||
email: user10@example.com
|
email: user10@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user10
|
login_name: user10
|
||||||
|
@ -378,8 +378,8 @@
|
||||||
email: user11@example.com
|
email: user11@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user11
|
login_name: user11
|
||||||
|
@ -415,8 +415,8 @@
|
||||||
email: user12@example.com
|
email: user12@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user12
|
login_name: user12
|
||||||
|
@ -452,8 +452,8 @@
|
||||||
email: user13@example.com
|
email: user13@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user13
|
login_name: user13
|
||||||
|
@ -489,8 +489,8 @@
|
||||||
email: user14@example.com
|
email: user14@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user14
|
login_name: user14
|
||||||
|
@ -526,8 +526,8 @@
|
||||||
email: user15@example.com
|
email: user15@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user15
|
login_name: user15
|
||||||
|
@ -563,8 +563,8 @@
|
||||||
email: user16@example.com
|
email: user16@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user16
|
login_name: user16
|
||||||
|
@ -600,8 +600,8 @@
|
||||||
email: user17@example.com
|
email: user17@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user17
|
login_name: user17
|
||||||
|
@ -637,8 +637,8 @@
|
||||||
email: user18@example.com
|
email: user18@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user18
|
login_name: user18
|
||||||
|
@ -674,8 +674,8 @@
|
||||||
email: user19@example.com
|
email: user19@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user19
|
login_name: user19
|
||||||
|
@ -711,8 +711,8 @@
|
||||||
email: user20@example.com
|
email: user20@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user20
|
login_name: user20
|
||||||
|
@ -748,8 +748,8 @@
|
||||||
email: user21@example.com
|
email: user21@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user21
|
login_name: user21
|
||||||
|
@ -785,8 +785,8 @@
|
||||||
email: limited_org@example.com
|
email: limited_org@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: limited_org
|
login_name: limited_org
|
||||||
|
@ -822,8 +822,8 @@
|
||||||
email: privated_org@example.com
|
email: privated_org@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: privated_org
|
login_name: privated_org
|
||||||
|
@ -859,8 +859,8 @@
|
||||||
email: user24@example.com
|
email: user24@example.com
|
||||||
keep_email_private: true
|
keep_email_private: true
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user24
|
login_name: user24
|
||||||
|
@ -896,8 +896,8 @@
|
||||||
email: org25@example.com
|
email: org25@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: org25
|
login_name: org25
|
||||||
|
@ -933,8 +933,8 @@
|
||||||
email: org26@example.com
|
email: org26@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: onmention
|
email_notifications_preference: onmention
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: org26
|
login_name: org26
|
||||||
|
@ -970,8 +970,8 @@
|
||||||
email: user27@example.com
|
email: user27@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user27
|
login_name: user27
|
||||||
|
@ -1007,8 +1007,8 @@
|
||||||
email: user28@example.com
|
email: user28@example.com
|
||||||
keep_email_private: true
|
keep_email_private: true
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user28
|
login_name: user28
|
||||||
|
@ -1044,8 +1044,8 @@
|
||||||
email: user29@example.com
|
email: user29@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user29
|
login_name: user29
|
||||||
|
@ -1081,8 +1081,8 @@
|
||||||
email: user30@example.com
|
email: user30@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user30
|
login_name: user30
|
||||||
|
@ -1118,8 +1118,8 @@
|
||||||
email: user31@example.com
|
email: user31@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user31
|
login_name: user31
|
||||||
|
@ -1155,8 +1155,8 @@
|
||||||
email: user32@example.com
|
email: user32@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: 7d93daa0d1e6f2305cc8fa496847d61dc7320bb16262f9c55dd753480207234cdd96a93194e408341971742f47017
|
passwd: ZogKvWdyEx:notpassword
|
||||||
passwd_hash_algo: argon2
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user32
|
login_name: user32
|
||||||
|
@ -1192,8 +1192,8 @@
|
||||||
email: user33@example.com
|
email: user33@example.com
|
||||||
keep_email_private: false
|
keep_email_private: false
|
||||||
email_notifications_preference: enabled
|
email_notifications_preference: enabled
|
||||||
passwd: e82bc8ae42a53b98c3bd0f941aacc4aa2a264407534b0a11bf270137f67af912f694b67951f92148c45f91717e1478ca7889
|
passwd: ZogKvWdyEx:password
|
||||||
passwd_hash_algo: pbkdf2$50000$50
|
passwd_hash_algo: dummy
|
||||||
must_change_password: false
|
must_change_password: false
|
||||||
login_source: 0
|
login_source: 0
|
||||||
login_name: user33
|
login_name: user33
|
||||||
|
|
|
@ -9,6 +9,8 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
|
"code.gitea.io/gitea/modules/auth/password/hash"
|
||||||
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
|
||||||
"github.com/go-testfixtures/testfixtures/v3"
|
"github.com/go-testfixtures/testfixtures/v3"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
|
@ -64,6 +66,11 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// register the dummy hash algorithm function used in the test fixtures
|
||||||
|
_ = hash.Register("dummy", hash.NewDummyHasher)
|
||||||
|
|
||||||
|
setting.PasswordHashAlgo, _ = hash.SetDefaultPasswordHashAlgorithm("dummy")
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,5 +122,8 @@ func LoadFixtures(engine ...*xorm.Engine) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_ = hash.Register("dummy", hash.NewDummyHasher)
|
||||||
|
setting.PasswordHashAlgo, _ = hash.SetDefaultPasswordHashAlgorithm("dummy")
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Register("argon2", NewArgon2Hasher)
|
MustRegister("argon2", NewArgon2Hasher)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Argon2Hasher implements PasswordHasher
|
// Argon2Hasher implements PasswordHasher
|
||||||
|
|
|
@ -8,7 +8,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Register("bcrypt", NewBcryptHasher)
|
MustRegister("bcrypt", NewBcryptHasher)
|
||||||
}
|
}
|
||||||
|
|
||||||
// BcryptHasher implements PasswordHasher
|
// BcryptHasher implements PasswordHasher
|
||||||
|
|
33
modules/auth/password/hash/dummy.go
Normal file
33
modules/auth/password/hash/dummy.go
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package hash
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/hex"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DummyHasher implements PasswordHasher and is a dummy hasher that simply
|
||||||
|
// puts the password in place with its salt
|
||||||
|
// This SHOULD NOT be used in production and is provided to make the integration
|
||||||
|
// tests faster only
|
||||||
|
type DummyHasher struct{}
|
||||||
|
|
||||||
|
// HashWithSaltBytes a provided password and salt
|
||||||
|
func (hasher *DummyHasher) HashWithSaltBytes(password string, salt []byte) string {
|
||||||
|
if hasher == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(salt) == 10 {
|
||||||
|
return string(salt) + ":" + password
|
||||||
|
}
|
||||||
|
|
||||||
|
return hex.EncodeToString(salt) + ":" + password
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewDummyHasher is a factory method to create a DummyHasher
|
||||||
|
// Any provided configuration is ignored
|
||||||
|
func NewDummyHasher(_ string) *DummyHasher {
|
||||||
|
return &DummyHasher{}
|
||||||
|
}
|
25
modules/auth/password/hash/dummy_test.go
Normal file
25
modules/auth/password/hash/dummy_test.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package hash
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestDummyHasher(t *testing.T) {
|
||||||
|
dummy := &PasswordHashAlgorithm{
|
||||||
|
PasswordSaltHasher: NewDummyHasher(""),
|
||||||
|
Specification: "dummy",
|
||||||
|
}
|
||||||
|
|
||||||
|
password, salt := "password", "ZogKvWdyEx"
|
||||||
|
|
||||||
|
hash, err := dummy.Hash(password, salt)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
assert.Equal(t, hash, salt+":"+password)
|
||||||
|
|
||||||
|
assert.True(t, dummy.VerifyPassword(password, hash, salt))
|
||||||
|
}
|
|
@ -83,17 +83,26 @@ var (
|
||||||
availableHasherFactories = map[string]func(string) PasswordSaltHasher{}
|
availableHasherFactories = map[string]func(string) PasswordSaltHasher{}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// MustRegister registers a PasswordSaltHasher with the availableHasherFactories
|
||||||
|
// Caution: This is not thread safe.
|
||||||
|
func MustRegister[T PasswordSaltHasher](name string, newFn func(config string) T) {
|
||||||
|
if err := Register(name, newFn); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Register registers a PasswordSaltHasher with the availableHasherFactories
|
// Register registers a PasswordSaltHasher with the availableHasherFactories
|
||||||
// Caution: This is not thread safe.
|
// Caution: This is not thread safe.
|
||||||
func Register[T PasswordSaltHasher](name string, newFn func(config string) T) {
|
func Register[T PasswordSaltHasher](name string, newFn func(config string) T) error {
|
||||||
if _, has := availableHasherFactories[name]; has {
|
if _, has := availableHasherFactories[name]; has {
|
||||||
panic(fmt.Errorf("duplicate registration of password salt hasher: %s", name))
|
return fmt.Errorf("duplicate registration of password salt hasher: %s", name)
|
||||||
}
|
}
|
||||||
|
|
||||||
availableHasherFactories[name] = func(config string) PasswordSaltHasher {
|
availableHasherFactories[name] = func(config string) PasswordSaltHasher {
|
||||||
n := newFn(config)
|
n := newFn(config)
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// In early versions of gitea the password hash algorithm field of a user could be
|
// In early versions of gitea the password hash algorithm field of a user could be
|
||||||
|
|
|
@ -19,16 +19,20 @@ func (t testSaltHasher) HashWithSaltBytes(password string, salt []byte) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_registerHasher(t *testing.T) {
|
func Test_registerHasher(t *testing.T) {
|
||||||
Register("Test_registerHasher", func(config string) testSaltHasher {
|
MustRegister("Test_registerHasher", func(config string) testSaltHasher {
|
||||||
return testSaltHasher(config)
|
return testSaltHasher(config)
|
||||||
})
|
})
|
||||||
|
|
||||||
assert.Panics(t, func() {
|
assert.Panics(t, func() {
|
||||||
Register("Test_registerHasher", func(config string) testSaltHasher {
|
MustRegister("Test_registerHasher", func(config string) testSaltHasher {
|
||||||
return testSaltHasher(config)
|
return testSaltHasher(config)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
assert.Error(t, Register("Test_registerHasher", func(config string) testSaltHasher {
|
||||||
|
return testSaltHasher(config)
|
||||||
|
}))
|
||||||
|
|
||||||
assert.Equal(t, "password$salt$",
|
assert.Equal(t, "password$salt$",
|
||||||
Parse("Test_registerHasher").PasswordSaltHasher.HashWithSaltBytes("password", []byte("salt")))
|
Parse("Test_registerHasher").PasswordSaltHasher.HashWithSaltBytes("password", []byte("salt")))
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Register("pbkdf2", NewPBKDF2Hasher)
|
MustRegister("pbkdf2", NewPBKDF2Hasher)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PBKDF2Hasher implements PasswordHasher
|
// PBKDF2Hasher implements PasswordHasher
|
||||||
|
|
|
@ -13,7 +13,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Register("scrypt", NewScryptHasher)
|
MustRegister("scrypt", NewScryptHasher)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ScryptHasher implements PasswordHasher
|
// ScryptHasher implements PasswordHasher
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/modules/auth/password/hash"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/user"
|
"code.gitea.io/gitea/modules/user"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
@ -232,6 +233,10 @@ func InitProviderAndLoadCommonSettingsForTest(extraConfigs ...string) {
|
||||||
if err := PrepareAppDataPath(); err != nil {
|
if err := PrepareAppDataPath(); err != nil {
|
||||||
log.Fatal("Can not prepare APP_DATA_PATH: %v", err)
|
log.Fatal("Can not prepare APP_DATA_PATH: %v", err)
|
||||||
}
|
}
|
||||||
|
// register the dummy hash algorithm function used in the test fixtures
|
||||||
|
_ = hash.Register("dummy", hash.NewDummyHasher)
|
||||||
|
|
||||||
|
PasswordHashAlgo, _ = hash.SetDefaultPasswordHashAlgorithm("dummy")
|
||||||
}
|
}
|
||||||
|
|
||||||
// newFileProviderFromConf initializes configuration context.
|
// newFileProviderFromConf initializes configuration context.
|
||||||
|
|
Loading…
Reference in a new issue