From a5a3a41a50e3f47f49d8ca48c6cc2bcb667f6050 Mon Sep 17 00:00:00 2001
From: Zhu Shung <memorycancel@gmail.com>
Date: Mon, 10 Jan 2022 14:42:12 +0000
Subject: [PATCH] JH need more complex passwords

---
 db/fixtures/development/18_abuse_reports.rb   |  2 +-
 .../user_approves_with_password_spec.rb       |  4 +--
 .../trial_registrations/signin_spec.rb        |  2 +-
 ee/spec/features/users/login_spec.rb          |  2 +-
 .../gitlab/scim/provisioning_service_spec.rb  |  3 +-
 .../gitlab/auth/smartcard/certificate_spec.rb |  2 +-
 ee/spec/lib/gitlab/auth_spec.rb               |  2 +-
 .../api/merge_request_approvals_spec.rb       |  6 ++--
 ee/spec/requests/api/scim_spec.rb             |  2 +-
 ee/spec/requests/api/users_spec.rb            |  2 +-
 .../services/ee/users/create_service_spec.rb  |  2 +-
 .../services/ee/users/update_service_spec.rb  |  2 +-
 .../merge_requests/approval_service_spec.rb   |  6 ++--
 lib/gitlab/auth/o_auth/user.rb                |  4 +--
 lib/gitlab/password.rb                        | 14 +++++++++
 lib/tasks/gitlab/seed/group_seed.rake         |  2 +-
 .../admin/users_controller_spec.rb            |  4 +--
 .../omniauth_callbacks_controller_spec.rb     |  2 +-
 .../registrations_controller_spec.rb          |  4 +--
 spec/factories/users.rb                       |  2 +-
 spec/features/password_reset_spec.rb          |  4 +--
 spec/features/profile_spec.rb                 |  2 +-
 spec/features/profiles/password_spec.rb       |  8 ++---
 .../features/users/anonymous_sessions_spec.rb |  2 +-
 spec/features/users/login_spec.rb             | 24 +++++++--------
 spec/lib/gitlab/auth_spec.rb                  | 30 +++++++++----------
 spec/mailers/emails/profile_spec.rb           |  2 +-
 spec/models/hooks/system_hook_spec.rb         |  2 +-
 spec/models/user_spec.rb                      |  4 +--
 spec/requests/api/users_spec.rb               | 14 ++++-----
 spec/requests/git_http_spec.rb                |  4 +--
 spec/services/users/create_service_spec.rb    | 14 ++++-----
 spec/support/helpers/login_helpers.rb         |  2 +-
 spec/tasks/gitlab/password_rake_spec.rb       |  8 ++---
 34 files changed, 102 insertions(+), 87 deletions(-)
 create mode 100644 lib/gitlab/password.rb

diff --git a/db/fixtures/development/18_abuse_reports.rb b/db/fixtures/development/18_abuse_reports.rb
index 88d2f784852f1..b06beca35e981 100644
--- a/db/fixtures/development/18_abuse_reports.rb
+++ b/db/fixtures/development/18_abuse_reports.rb
@@ -11,7 +11,7 @@ def self.seed
                   name: FFaker::Name.name,
                   email: FFaker::Internet.email,
                   confirmed_at: DateTime.now,
-                  password: '12345678'
+                  password: Gitlab::Password.test_default
                 )
 
               ::AbuseReport.create(reporter: ::User.take, user: reported_user, message: 'User sends spam')
diff --git a/ee/spec/features/merge_request/user_approves_with_password_spec.rb b/ee/spec/features/merge_request/user_approves_with_password_spec.rb
index 03d1aa91d7d9b..005edb9889716 100644
--- a/ee/spec/features/merge_request/user_approves_with_password_spec.rb
+++ b/ee/spec/features/merge_request/user_approves_with_password_spec.rb
@@ -16,7 +16,7 @@
   end
 
   it 'works, when user approves and enters correct password' do
-    approve_with_password '12345678'
+    approve_with_password Gitlab::Password.test_default
 
     page.within('.js-mr-approvals') do
       expect(page).not_to have_button('Approve')
@@ -25,7 +25,7 @@
   end
 
   it 'does not need password to unapprove' do
-    approve_with_password '12345678'
+    approve_with_password Gitlab::Password.test_default
     unapprove
 
     expect(page).to have_button('Approve')
diff --git a/ee/spec/features/trial_registrations/signin_spec.rb b/ee/spec/features/trial_registrations/signin_spec.rb
index 9e45341c5715b..11a93efd884bb 100644
--- a/ee/spec/features/trial_registrations/signin_spec.rb
+++ b/ee/spec/features/trial_registrations/signin_spec.rb
@@ -18,7 +18,7 @@
 
       within('div#login-pane') do
         fill_in 'user_login', with: user.email
-        fill_in 'user_password', with: '12345678'
+        fill_in 'user_password', with: Gitlab::Password.test_default
 
         click_button 'Sign in'
       end
diff --git a/ee/spec/features/users/login_spec.rb b/ee/spec/features/users/login_spec.rb
index 37a97eff1022a..d4cfe0fdf39a8 100644
--- a/ee/spec/features/users/login_spec.rb
+++ b/ee/spec/features/users/login_spec.rb
@@ -12,7 +12,7 @@
   end
 
   it 'creates a security event for an invalid password login' do
-    user = create(:user, password: 'not-the-default')
+    user = create(:user, password: "not" + Gitlab::Password.test_default)
 
     expect { gitlab_sign_in(user) }
       .to change { AuditEvent.where(entity_id: -1).count }.from(0).to(1)
diff --git a/ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb b/ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb
index 048c19aff46ea..25452e801345e 100644
--- a/ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb
+++ b/ee/spec/lib/ee/gitlab/scim/provisioning_service_spec.rb
@@ -128,7 +128,8 @@ def user
         email: 'work@example.com',
         name: 'Test Name',
         extern_uid: 'test_uid',
-        username: 'username'
+        username: 'username',
+        password: Gitlab::Password.test_default
       }
     end
 
diff --git a/ee/spec/lib/gitlab/auth/smartcard/certificate_spec.rb b/ee/spec/lib/gitlab/auth/smartcard/certificate_spec.rb
index 0dc6c0aeb73a9..e2d99adaa86e5 100644
--- a/ee/spec/lib/gitlab/auth/smartcard/certificate_spec.rb
+++ b/ee/spec/lib/gitlab/auth/smartcard/certificate_spec.rb
@@ -142,7 +142,7 @@
 
         context 'avoids conflicting namespaces' do
           let(:subject_dn) { '/CN=Gitlab User/emailAddress=gitlab-user@random-corp.org' }
-          let!(:existing_user) { create(:user, username: 'GitlabUser') }
+          let!(:existing_user) { create(:user, username: 'GitlabUser', password: Gitlab::Password.test_default) }
 
           it 'creates user with correct usnername' do
             expect { subject }.to change { User.count }.from(1).to(2)
diff --git a/ee/spec/lib/gitlab/auth_spec.rb b/ee/spec/lib/gitlab/auth_spec.rb
index 427e3f02ac86d..0827106476bcb 100644
--- a/ee/spec/lib/gitlab/auth_spec.rb
+++ b/ee/spec/lib/gitlab/auth_spec.rb
@@ -12,7 +12,7 @@
   end
 
   let(:username) { 'John' } # username isn't lowercase, test this
-  let(:password) { 'my-secret' }
+  let(:password) { Gitlab::Password.test_default }
 
   context 'with kerberos' do
     before do
diff --git a/ee/spec/requests/api/merge_request_approvals_spec.rb b/ee/spec/requests/api/merge_request_approvals_spec.rb
index d6945fd09990d..b5aac8b774426 100644
--- a/ee/spec/requests/api/merge_request_approvals_spec.rb
+++ b/ee/spec/requests/api/merge_request_approvals_spec.rb
@@ -405,7 +405,7 @@ def approve(extra_params = {})
       context 'when project requires force auth for approval' do
         before do
           project.update!(require_password_to_approve: true)
-          approver.update!(password: 'password')
+          approver.update!(password: Gitlab::Password.test_default)
         end
 
         it 'does not approve the merge request with no password' do
@@ -416,14 +416,14 @@ def approve(extra_params = {})
         end
 
         it 'does not approve the merge request with incorrect password' do
-          approve(approval_password: 'incorrect')
+          approve(approval_password: "not" + Gitlab::Password.test_default)
 
           expect(response).to have_gitlab_http_status(:unauthorized)
           expect(merge_request.reload.approvals_left).to eq(2)
         end
 
         it 'approves the merge request with correct password' do
-          approve(approval_password: 'password')
+          approve(approval_password: Gitlab::Password.test_default)
 
           expect(response).to have_gitlab_http_status(:created)
           expect(merge_request.reload.approvals_left).to eq(1)
diff --git a/ee/spec/requests/api/scim_spec.rb b/ee/spec/requests/api/scim_spec.rb
index f126ad23c012a..ccd28f3e6a099 100644
--- a/ee/spec/requests/api/scim_spec.rb
+++ b/ee/spec/requests/api/scim_spec.rb
@@ -7,7 +7,7 @@
   let(:scim_token) { create(:scim_oauth_access_token, group: group) }
   let(:group) { identity.group }
 
-  let_it_be(:password) { 'secret_pass' }
+  let_it_be(:password) { Gitlab::Password.test_default }
   let_it_be(:access_token) { 'secret_token' }
 
   before do
diff --git a/ee/spec/requests/api/users_spec.rb b/ee/spec/requests/api/users_spec.rb
index e352e5ce24e2e..ea09ccfd50cb5 100644
--- a/ee/spec/requests/api/users_spec.rb
+++ b/ee/spec/requests/api/users_spec.rb
@@ -71,7 +71,7 @@
 
     describe "PUT /users/:id" do
       it "creates audit event when updating user with new password" do
-        put api("/users/#{user.id}", admin), params: { password: '12345678' }
+        put api("/users/#{user.id}", admin), params: { password: Gitlab::Password.test_default }
 
         expect(AuditEvent.count).to eq(1)
       end
diff --git a/ee/spec/services/ee/users/create_service_spec.rb b/ee/spec/services/ee/users/create_service_spec.rb
index e094f85d27773..444d25c872204 100644
--- a/ee/spec/services/ee/users/create_service_spec.rb
+++ b/ee/spec/services/ee/users/create_service_spec.rb
@@ -10,7 +10,7 @@
       name: 'John Doe',
       username: 'jduser',
       email: 'jd@example.com',
-      password: 'mydummypass'
+      password: Gitlab::Password.test_default
     }
   end
 
diff --git a/ee/spec/services/ee/users/update_service_spec.rb b/ee/spec/services/ee/users/update_service_spec.rb
index a287bf06587fb..9676de31734d6 100644
--- a/ee/spec/services/ee/users/update_service_spec.rb
+++ b/ee/spec/services/ee/users/update_service_spec.rb
@@ -177,7 +177,7 @@
 
       let(:service) { described_class.new(admin_user, ActionController::Parameters.new(params).permit!) }
       let(:params) do
-        { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: 'mydummypass' }
+        { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: Gitlab::Password.test_default }
       end
 
       context 'allowed params' do
diff --git a/ee/spec/services/merge_requests/approval_service_spec.rb b/ee/spec/services/merge_requests/approval_service_spec.rb
index 3bf2f4393714b..684bf0e97dff9 100644
--- a/ee/spec/services/merge_requests/approval_service_spec.rb
+++ b/ee/spec/services/merge_requests/approval_service_spec.rb
@@ -134,7 +134,7 @@
     context 'when project requires force auth for approval' do
       before do
         project.update!(require_password_to_approve: true)
-        user.update!(password: 'password')
+        user.update!(password: Gitlab::Password.test_default)
       end
       context 'when password not specified' do
         it 'does not update the approvals' do
@@ -144,7 +144,7 @@
 
       context 'when incorrect password is specified' do
         let(:params) do
-          { approval_password: 'incorrect' }
+          { approval_password: "not" + Gitlab::Password.test_default }
         end
 
         it 'does not update the approvals' do
@@ -156,7 +156,7 @@
 
       context 'when correct password is specified' do
         let(:params) do
-          { approval_password: 'password' }
+          { approval_password: Gitlab::Password.test_default }
         end
 
         it 'approves the merge request' do
diff --git a/lib/gitlab/auth/o_auth/user.rb b/lib/gitlab/auth/o_auth/user.rb
index feb5fea4c85a5..9f142727ebb3b 100644
--- a/lib/gitlab/auth/o_auth/user.rb
+++ b/lib/gitlab/auth/o_auth/user.rb
@@ -230,8 +230,8 @@ def user_attributes
             name:                       name.strip.presence || valid_username,
             username:                   valid_username,
             email:                      email,
-            password:                   auth_hash.password,
-            password_confirmation:      auth_hash.password,
+            password:                   Gitlab::Password.test_default(21),
+            password_confirmation:      Gitlab::Password.test_default(21),
             password_automatically_set: true
           }
         end
diff --git a/lib/gitlab/password.rb b/lib/gitlab/password.rb
new file mode 100644
index 0000000000000..00aef8754d697
--- /dev/null
+++ b/lib/gitlab/password.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+# This module is used to return fake strong password for tests
+
+module Gitlab
+  module Password
+    DEFAULT_LENGTH = 12
+    TEST_DEFAULT = "123qweQWE!@#" + "0" * (User.password_length.max - DEFAULT_LENGTH)
+    def self.test_default(length = 12)
+      password_length = [[User.password_length.min, length].max, User.password_length.max].min
+      TEST_DEFAULT[...password_length]
+    end
+  end
+end
diff --git a/lib/tasks/gitlab/seed/group_seed.rake b/lib/tasks/gitlab/seed/group_seed.rake
index a9a350fb6c3cd..491cf78298545 100644
--- a/lib/tasks/gitlab/seed/group_seed.rake
+++ b/lib/tasks/gitlab/seed/group_seed.rake
@@ -125,7 +125,7 @@ class GroupSeeder
       name: FFaker::Name.name,
       email: FFaker::Internet.email,
       confirmed_at: DateTime.now,
-      password: Devise.friendly_token
+      password: Gitlab::Password.test_default
     )
   end
 
diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb
index c46a12680a206..c52223d475811 100644
--- a/spec/controllers/admin/users_controller_spec.rb
+++ b/spec/controllers/admin/users_controller_spec.rb
@@ -612,8 +612,8 @@ def update_password(user, password = User.random_password, password_confirmation
       end
 
       context 'when the new password does not match the password confirmation' do
-        let(:password) { 'some_password' }
-        let(:password_confirmation) { 'not_same_as_password' }
+        let(:password) { Gitlab::Password.test_default }
+        let(:password_confirmation) { "not" + Gitlab::Password.test_default }
 
         it 'shows the edit page again' do
           update_password(user, password, password_confirmation)
diff --git a/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb b/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb
index ecff173b8ac87..29678706bbacf 100644
--- a/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb
+++ b/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb
@@ -58,7 +58,7 @@
   end
 
   context 'sign up' do
-    let(:user) { double(email: +'new@example.com') }
+    let(:user) { create(:user) }
 
     before do
       stub_omniauth_setting(block_auto_created_users: false)
diff --git a/spec/controllers/registrations_controller_spec.rb b/spec/controllers/registrations_controller_spec.rb
index 3f7941b345651..889401e78f871 100644
--- a/spec/controllers/registrations_controller_spec.rb
+++ b/spec/controllers/registrations_controller_spec.rb
@@ -483,7 +483,7 @@ def expect_success
       end
 
       it 'succeeds if password is confirmed' do
-        post :destroy, params: { password: '12345678' }
+        post :destroy, params: { password: Gitlab::Password.test_default }
 
         expect_success
       end
@@ -524,7 +524,7 @@ def expect_success
           end
 
           it 'fails' do
-            delete :destroy, params: { password: '12345678' }
+            delete :destroy, params: { password: Gitlab::Password.test_default }
 
             expect_failure(s_('Profiles|You must transfer ownership or delete groups you are an owner of before you can delete your account'))
           end
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
index 8aa9654956eb4..5f325717ec576 100644
--- a/spec/factories/users.rb
+++ b/spec/factories/users.rb
@@ -5,7 +5,7 @@
     email { generate(:email) }
     name { generate(:name) }
     username { generate(:username) }
-    password { "12345678" }
+    password { Gitlab::Password.test_default }
     role { 'software_developer' }
     confirmed_at { Time.now }
     confirmation_token { nil }
diff --git a/spec/features/password_reset_spec.rb b/spec/features/password_reset_spec.rb
index 31b2b2d15aa9e..322ccc6a0c047 100644
--- a/spec/features/password_reset_spec.rb
+++ b/spec/features/password_reset_spec.rb
@@ -44,8 +44,8 @@
 
       visit(edit_user_password_path(reset_password_token: token))
 
-      fill_in 'New password', with: 'hello1234'
-      fill_in 'Confirm new password', with: 'hello1234'
+      fill_in 'New password', with: "new" + Gitlab::Password.test_default
+      fill_in 'Confirm new password', with: "new" + Gitlab::Password.test_default
 
       click_button 'Change your password'
 
diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb
index 24ba55994ae2a..eeb9bf476c3fe 100644
--- a/spec/features/profile_spec.rb
+++ b/spec/features/profile_spec.rb
@@ -29,7 +29,7 @@
     it 'deletes user', :js, :sidekiq_might_not_need_inline do
       click_button 'Delete account'
 
-      fill_in 'password', with: '12345678'
+      fill_in 'password', with: Gitlab::Password.test_default
 
       page.within '.modal' do
         click_button 'Delete account'
diff --git a/spec/features/profiles/password_spec.rb b/spec/features/profiles/password_spec.rb
index 7059697354d80..25fe43617fde8 100644
--- a/spec/features/profiles/password_spec.rb
+++ b/spec/features/profiles/password_spec.rb
@@ -39,7 +39,7 @@ def fill_passwords(password, confirmation)
 
       describe 'User puts the same passwords in the field and in the confirmation' do
         it 'shows a success message' do
-          fill_passwords('mypassword', 'mypassword')
+          fill_passwords(Gitlab::Password.test_default, Gitlab::Password.test_default)
 
           page.within('.flash-notice') do
             expect(page).to have_content('Password was successfully updated. Please sign in again.')
@@ -79,7 +79,7 @@ def fill_passwords(password, confirmation)
   end
 
   context 'Change password' do
-    let(:new_password) { '22233344' }
+    let(:new_password) { "new" + Gitlab::Password.test_default }
 
     before do
       sign_in(user)
@@ -170,8 +170,8 @@ def fill_passwords(password, confirmation)
       expect(current_path).to eq new_profile_password_path
 
       fill_in :user_password,      with: user.password
-      fill_in :user_new_password,  with: '12345678'
-      fill_in :user_password_confirmation, with: '12345678'
+      fill_in :user_new_password,  with: Gitlab::Password.test_default
+      fill_in :user_password_confirmation, with: Gitlab::Password.test_default
       click_button 'Set new password'
 
       expect(current_path).to eq new_user_session_path
diff --git a/spec/features/users/anonymous_sessions_spec.rb b/spec/features/users/anonymous_sessions_spec.rb
index 6b21412ae3d3c..f9b2362639720 100644
--- a/spec/features/users/anonymous_sessions_spec.rb
+++ b/spec/features/users/anonymous_sessions_spec.rb
@@ -9,7 +9,7 @@
     visit new_user_session_path
     # The session key only gets created after a post
     fill_in 'user_login', with: 'non-existant@gitlab.org'
-    fill_in 'user_password', with: '12345678'
+    fill_in 'user_password', with: Gitlab::Password.test_default
     click_button 'Sign in'
 
     expect(page).to have_content('Invalid login or password')
diff --git a/spec/features/users/login_spec.rb b/spec/features/users/login_spec.rb
index 7ef11194ff944..2780549eea1a0 100644
--- a/spec/features/users/login_spec.rb
+++ b/spec/features/users/login_spec.rb
@@ -49,15 +49,15 @@
       expect(current_path).to eq edit_user_password_path
       expect(page).to have_content('Please create a password for your new account.')
 
-      fill_in 'user_password',              with: 'password'
-      fill_in 'user_password_confirmation', with: 'password'
+      fill_in 'user_password',              with: Gitlab::Password.test_default
+      fill_in 'user_password_confirmation', with: Gitlab::Password.test_default
       click_button 'Change your password'
 
       expect(current_path).to eq new_user_session_path
       expect(page).to have_content(I18n.t('devise.passwords.updated_not_active'))
 
       fill_in 'user_login',    with: user.username
-      fill_in 'user_password', with: 'password'
+      fill_in 'user_password', with: Gitlab::Password.test_default
       click_button 'Sign in'
 
       expect_single_session_with_authenticated_ttl
@@ -210,7 +210,7 @@ def enter_code(code)
       end
 
       it 'does not allow sign-in if the user password is updated before entering a one-time code' do
-        user.update!(password: 'new_password')
+        user.update!(password: "new" + Gitlab::Password.test_default)
 
         enter_code(user.current_otp)
 
@@ -447,7 +447,7 @@ def sign_in_using_saml!
           visit new_user_session_path
 
           fill_in 'user_login', with: user.email
-          fill_in 'user_password', with: '12345678'
+          fill_in 'user_password', with: Gitlab::Password.test_default
           click_button 'Sign in'
 
           expect(current_path).to eq(new_profile_password_path)
@@ -456,7 +456,7 @@ def sign_in_using_saml!
     end
 
     context 'with invalid username and password' do
-      let(:user) { create(:user, password: 'not-the-default') }
+      let(:user) { create(:user, password: "not" + Gitlab::Password.test_default) }
 
       it 'blocks invalid login' do
         expect(authentication_metrics)
@@ -767,7 +767,7 @@ def sign_in_using_saml!
       visit new_user_session_path
 
       fill_in 'user_login', with: user.email
-      fill_in 'user_password', with: '12345678'
+      fill_in 'user_password', with: Gitlab::Password.test_default
 
       click_button 'Sign in'
 
@@ -788,7 +788,7 @@ def sign_in_using_saml!
       visit new_user_session_path
 
       fill_in 'user_login', with: user.email
-      fill_in 'user_password', with: '12345678'
+      fill_in 'user_password', with: Gitlab::Password.test_default
 
       click_button 'Sign in'
 
@@ -809,7 +809,7 @@ def sign_in_using_saml!
           visit new_user_session_path
 
           fill_in 'user_login', with: user.email
-          fill_in 'user_password', with: '12345678'
+          fill_in 'user_password', with: Gitlab::Password.test_default
 
           click_button 'Sign in'
 
@@ -844,7 +844,7 @@ def sign_in_using_saml!
           visit new_user_session_path
 
           fill_in 'user_login', with: user.email
-          fill_in 'user_password', with: '12345678'
+          fill_in 'user_password', with: Gitlab::Password.test_default
           click_button 'Sign in'
 
           fill_in 'user_otp_attempt', with: user.reload.current_otp
@@ -870,7 +870,7 @@ def sign_in_using_saml!
         visit new_user_session_path
 
         fill_in 'user_login', with: user.email
-        fill_in 'user_password', with: '12345678'
+        fill_in 'user_password', with: Gitlab::Password.test_default
         click_button 'Sign in'
 
         expect_to_be_on_terms_page
@@ -878,7 +878,7 @@ def sign_in_using_saml!
 
         expect(current_path).to eq(new_profile_password_path)
 
-        fill_in 'user_password', with: '12345678'
+        fill_in 'user_password', with: Gitlab::Password.test_default
         fill_in 'user_new_password', with: 'new password'
         fill_in 'user_password_confirmation', with: 'new password'
         click_button 'Set new password'
diff --git a/spec/lib/gitlab/auth_spec.rb b/spec/lib/gitlab/auth_spec.rb
index 32e647688ffdd..611c70d73a101 100644
--- a/spec/lib/gitlab/auth_spec.rb
+++ b/spec/lib/gitlab/auth_spec.rb
@@ -87,7 +87,7 @@
       end
 
       context 'when IP is already banned' do
-        subject { gl_auth.find_for_git_client('username', 'password', project: nil, ip: 'ip') }
+        subject { gl_auth.find_for_git_client('username', Gitlab::Password.test_default, project: nil, ip: 'ip') }
 
         before do
           expect_next_instance_of(Gitlab::Auth::IpRateLimiter) do |rate_limiter|
@@ -204,16 +204,16 @@
     end
 
     it 'recognizes master passwords' do
-      user = create(:user, password: 'password')
+      user = create(:user, password: Gitlab::Password.test_default)
 
-      expect(gl_auth.find_for_git_client(user.username, 'password', project: nil, ip: 'ip')).to have_attributes(actor: user, project: nil, type: :gitlab_or_ldap, authentication_abilities: described_class.full_authentication_abilities)
+      expect(gl_auth.find_for_git_client(user.username, Gitlab::Password.test_default, project: nil, ip: 'ip')).to have_attributes(actor: user, project: nil, type: :gitlab_or_ldap, authentication_abilities: described_class.full_authentication_abilities)
     end
 
     include_examples 'user login operation with unique ip limit' do
-      let(:user) { create(:user, password: 'password') }
+      let(:user) { create(:user, password: Gitlab::Password.test_default) }
 
       def operation
-        expect(gl_auth.find_for_git_client(user.username, 'password', project: nil, ip: 'ip')).to have_attributes(actor: user, project: nil, type: :gitlab_or_ldap, authentication_abilities: described_class.full_authentication_abilities)
+        expect(gl_auth.find_for_git_client(user.username, Gitlab::Password.test_default, project: nil, ip: 'ip')).to have_attributes(actor: user, project: nil, type: :gitlab_or_ldap, authentication_abilities: described_class.full_authentication_abilities)
       end
     end
 
@@ -477,7 +477,7 @@ def operation
           :user,
           :blocked,
           username: 'normal_user',
-          password: 'my-secret'
+          password: Gitlab::Password.test_default
         )
 
         expect(gl_auth.find_for_git_client(user.username, user.password, project: nil, ip: 'ip'))
@@ -486,7 +486,7 @@ def operation
 
       context 'when 2fa is enabled globally' do
         let_it_be(:user) do
-          create(:user, username: 'normal_user', password: 'my-secret', otp_grace_period_started_at: 1.day.ago)
+          create(:user, username: 'normal_user', password: Gitlab::Password.test_default, otp_grace_period_started_at: 1.day.ago)
         end
 
         before do
@@ -510,7 +510,7 @@ def operation
 
       context 'when 2fa is enabled personally' do
         let(:user) do
-          create(:user, :two_factor, username: 'normal_user', password: 'my-secret', otp_grace_period_started_at: 1.day.ago)
+          create(:user, :two_factor, username: 'normal_user', password: Gitlab::Password.test_default, otp_grace_period_started_at: 1.day.ago)
         end
 
         it 'fails' do
@@ -523,7 +523,7 @@ def operation
         user = create(
           :user,
           username: 'normal_user',
-          password: 'my-secret'
+          password: Gitlab::Password.test_default
         )
 
         expect(gl_auth.find_for_git_client(user.username, user.password, project: nil, ip: 'ip'))
@@ -534,7 +534,7 @@ def operation
         user = create(
           :user,
           username: 'oauth2',
-          password: 'my-secret'
+          password: Gitlab::Password.test_default
         )
 
         expect(gl_auth.find_for_git_client(user.username, user.password, project: nil, ip: 'ip'))
@@ -609,7 +609,7 @@ def operation
 
       context 'when deploy token and user have the same username' do
         let(:username) { 'normal_user' }
-        let(:user) { create(:user, username: username, password: 'my-secret') }
+        let(:user) { create(:user, username: username, password: Gitlab::Password.test_default) }
         let(:deploy_token) { create(:deploy_token, username: username, read_registry: false, projects: [project]) }
 
         it 'succeeds for the token' do
@@ -622,7 +622,7 @@ def operation
         it 'succeeds for the user' do
           auth_success = { actor: user, project: nil, type: :gitlab_or_ldap, authentication_abilities: described_class.full_authentication_abilities }
 
-          expect(gl_auth.find_for_git_client(username, 'my-secret', project: project, ip: 'ip'))
+          expect(gl_auth.find_for_git_client(username, Gitlab::Password.test_default, project: project, ip: 'ip'))
             .to have_attributes(auth_success)
         end
       end
@@ -816,7 +816,7 @@ def operation
     end
 
     let(:username) { 'John' } # username isn't lowercase, test this
-    let(:password) { 'my-secret' }
+    let(:password) { Gitlab::Password.test_default }
 
     it "finds user by valid login/password" do
       expect(gl_auth.find_with_user_password(username, password)).to eql user
@@ -941,13 +941,13 @@ def operation
       it "does not find user by using ldap as fallback to for authentication" do
         expect(Gitlab::Auth::Ldap::Authentication).to receive(:login).and_return(nil)
 
-        expect(gl_auth.find_with_user_password('ldap_user', 'password')).to be_nil
+        expect(gl_auth.find_with_user_password('ldap_user', Gitlab::Password.test_default)).to be_nil
       end
 
       it "find new user by using ldap as fallback to for authentication" do
         expect(Gitlab::Auth::Ldap::Authentication).to receive(:login).and_return(user)
 
-        expect(gl_auth.find_with_user_password('ldap_user', 'password')).to eq(user)
+        expect(gl_auth.find_with_user_password('ldap_user', Gitlab::Password.test_default)).to eq(user)
       end
     end
 
diff --git a/spec/mailers/emails/profile_spec.rb b/spec/mailers/emails/profile_spec.rb
index 365ca892bb199..af77989dbbc03 100644
--- a/spec/mailers/emails/profile_spec.rb
+++ b/spec/mailers/emails/profile_spec.rb
@@ -49,7 +49,7 @@
 
   describe 'for users that signed up, the email' do
     let(:example_site_path) { root_path }
-    let(:new_user) { create(:user, email: new_user_address, password: "securePassword") }
+    let(:new_user) { create(:user, email: new_user_address, password: Gitlab::Password.test_default) }
 
     subject { Notify.new_user_email(new_user.id) }
 
diff --git a/spec/models/hooks/system_hook_spec.rb b/spec/models/hooks/system_hook_spec.rb
index 17cb5da977abf..89bfb742f5d1a 100644
--- a/spec/models/hooks/system_hook_spec.rb
+++ b/spec/models/hooks/system_hook_spec.rb
@@ -37,7 +37,7 @@
     let(:project)     { create(:project, namespace: user.namespace) }
     let(:group)       { create(:group) }
     let(:params) do
-      { name: 'John Doe', username: 'jduser', email: 'jg@example.com', password: 'mydummypass' }
+      { name: 'John Doe', username: 'jduser', email: 'jg@example.com', password: Gitlab::Password.test_default }
     end
 
     before do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index c3f0c612c2c00..510c78eb5a08a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1672,9 +1672,9 @@
 
   describe '#generate_password' do
     it 'does not generate password by default' do
-      user = create(:user, password: 'abcdefghe')
+      user = create(:user, password: Gitlab::Password.test_default)
 
-      expect(user.password).to eq('abcdefghe')
+      expect(user.password).to eq(Gitlab::Password.test_default)
     end
   end
 
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index 0fb0150ecc9cb..98875d7e8d2be 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -1027,7 +1027,7 @@
       post api('/users', admin),
         params: {
           email: 'invalid email',
-          password: 'password',
+          password: Gitlab::Password.test_default,
           name: 'test'
         }
       expect(response).to have_gitlab_http_status(:bad_request)
@@ -1093,7 +1093,7 @@
         post api('/users', admin),
           params: {
             email: 'test@example.com',
-            password: 'password',
+            password: Gitlab::Password.test_default,
             username: 'test',
             name: 'foo'
           }
@@ -1105,7 +1105,7 @@
             params: {
               name: 'foo',
               email: 'test@example.com',
-              password: 'password',
+              password: Gitlab::Password.test_default,
               username: 'foo'
             }
         end.to change { User.count }.by(0)
@@ -1119,7 +1119,7 @@
             params: {
               name: 'foo',
               email: 'foo@example.com',
-              password: 'password',
+              password: Gitlab::Password.test_default,
               username: 'test'
             }
         end.to change { User.count }.by(0)
@@ -1133,7 +1133,7 @@
             params: {
               name: 'foo',
               email: 'foo@example.com',
-              password: 'password',
+              password: Gitlab::Password.test_default,
               username: 'TEST'
             }
         end.to change { User.count }.by(0)
@@ -1478,8 +1478,8 @@ def update_password(user, admin, password = User.random_password)
 
     context "with existing user" do
       before do
-        post api("/users", admin), params: { email: 'test@example.com', password: 'password', username: 'test', name: 'test' }
-        post api("/users", admin), params: { email: 'foo@bar.com', password: 'password', username: 'john', name: 'john' }
+        post api("/users", admin), params: { email: 'test@example.com', password: Gitlab::Password.test_default, username: 'test', name: 'test' }
+        post api("/users", admin), params: { email: 'foo@bar.com', password: Gitlab::Password.test_default, username: 'john', name: 'john' }
         @user = User.all.last
       end
 
diff --git a/spec/requests/git_http_spec.rb b/spec/requests/git_http_spec.rb
index d2528600477d4..623cf24b9cbe9 100644
--- a/spec/requests/git_http_spec.rb
+++ b/spec/requests/git_http_spec.rb
@@ -319,7 +319,7 @@
             context 'when user is using credentials with special characters' do
               context 'with password with special characters' do
                 before do
-                  user.update!(password: 'RKszEwéC5kFnû∆f243fycGu§Gh9ftDj!U')
+                  user.update!(password: Gitlab::Password.test_default)
                 end
 
                 it 'allows clones' do
@@ -1670,7 +1670,7 @@ def attempt_login(include_password)
             context 'when user is using credentials with special characters' do
               context 'with password with special characters' do
                 before do
-                  user.update!(password: 'RKszEwéC5kFnû∆f243fycGu§Gh9ftDj!U')
+                  user.update!(password: Gitlab::Password.test_default)
                 end
 
                 it 'allows clones' do
diff --git a/spec/services/users/create_service_spec.rb b/spec/services/users/create_service_spec.rb
index 74340bac0550c..ab9da82e91cc8 100644
--- a/spec/services/users/create_service_spec.rb
+++ b/spec/services/users/create_service_spec.rb
@@ -12,7 +12,7 @@
 
       context 'when required parameters are provided' do
         let(:params) do
-          { name: 'John Doe', username: 'jduser', email: email, password: 'mydummypass' }
+          { name: 'John Doe', username: 'jduser', email: email, password: Gitlab::Password.test_default }
         end
 
         it 'returns a persisted user' do
@@ -82,13 +82,13 @@
 
       context 'when force_random_password parameter is true' do
         let(:params) do
-          { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: 'mydummypass', force_random_password: true }
+          { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: Gitlab::Password.test_default, force_random_password: true }
         end
 
         it 'generates random password' do
           user = service.execute
 
-          expect(user.password).not_to eq 'mydummypass'
+          expect(user.password).not_to eq Gitlab::Password.test_default
           expect(user.password).to be_present
         end
       end
@@ -99,7 +99,7 @@
             name: 'John Doe',
             username: 'jduser',
             email: 'jd@example.com',
-            password: 'mydummypass',
+            password: Gitlab::Password.test_default,
             password_automatically_set: true
           }
         end
@@ -121,7 +121,7 @@
 
       context 'when skip_confirmation parameter is true' do
         let(:params) do
-          { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: 'mydummypass', skip_confirmation: true }
+          { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: Gitlab::Password.test_default, skip_confirmation: true }
         end
 
         it 'confirms the user' do
@@ -131,7 +131,7 @@
 
       context 'when reset_password parameter is true' do
         let(:params) do
-          { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: 'mydummypass', reset_password: true }
+          { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: Gitlab::Password.test_default, reset_password: true }
         end
 
         it 'resets password even if a password parameter is given' do
@@ -152,7 +152,7 @@
 
     context 'with nil user' do
       let(:params) do
-        { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: 'mydummypass', skip_confirmation: true }
+        { name: 'John Doe', username: 'jduser', email: 'jd@example.com', password: Gitlab::Password.test_default, skip_confirmation: true }
       end
 
       let(:service) { described_class.new(nil, params) }
diff --git a/spec/support/helpers/login_helpers.rb b/spec/support/helpers/login_helpers.rb
index d9157fa7485a5..4e0e8dd96ee8c 100644
--- a/spec/support/helpers/login_helpers.rb
+++ b/spec/support/helpers/login_helpers.rb
@@ -95,7 +95,7 @@ def gitlab_sign_in_with(user, remember: false, two_factor_auth: false)
     visit new_user_session_path
 
     fill_in "user_login", with: user.email
-    fill_in "user_password", with: "12345678"
+    fill_in "user_password", with: Gitlab::Password.test_default
     check 'user_remember_me' if remember
 
     click_button "Sign in"
diff --git a/spec/tasks/gitlab/password_rake_spec.rb b/spec/tasks/gitlab/password_rake_spec.rb
index 65bba836024dc..ec18d713351a0 100644
--- a/spec/tasks/gitlab/password_rake_spec.rb
+++ b/spec/tasks/gitlab/password_rake_spec.rb
@@ -3,7 +3,7 @@
 require 'rake_helper'
 
 RSpec.describe 'gitlab:password rake tasks', :silence_stdout do
-  let_it_be(:user_1) { create(:user, username: 'foobar', password: 'initial_password') }
+  let_it_be(:user_1) { create(:user, username: 'foobar', password: Gitlab::Password.test_default) }
 
   def stub_username(username)
     allow(Gitlab::TaskHelpers).to receive(:prompt).with('Enter username: ').and_return(username)
@@ -19,14 +19,14 @@ def stub_password(password, confirmation = nil)
     Rake.application.rake_require 'tasks/gitlab/password'
 
     stub_username('foobar')
-    stub_password('secretpassword')
+    stub_password(Gitlab::Password.test_default)
   end
 
   describe ':reset' do
     context 'when all inputs are correct' do
       it 'updates the password properly' do
         run_rake_task('gitlab:password:reset', user_1.username)
-        expect(user_1.reload.valid_password?('secretpassword')).to eq(true)
+        expect(user_1.reload.valid_password?(Gitlab::Password.test_default)).to eq(true)
       end
     end
 
@@ -55,7 +55,7 @@ def stub_password(password, confirmation = nil)
 
     context 'when passwords do not match' do
       before do
-        stub_password('randompassword', 'differentpassword')
+        stub_password(Gitlab::Password.test_default, "different" + Gitlab::Password.test_default)
       end
 
       it 'aborts with an error' do
-- 
GitLab