From 38816c2387d22e35d5b33016f2e86f84e1fbff61 Mon Sep 17 00:00:00 2001
From: adfoster-r7 <alandavid_foster@rapid7.com>
Date: Wed, 12 Jun 2024 01:58:58 +0100
Subject: [PATCH] Support rails 7.1

---
 app/models/metasploit/credential/krb_enc_key.rb  | 7 ++++++-
 app/models/metasploit/credential/ntlm_hash.rb    | 6 +++++-
 app/models/metasploit/credential/postgres_md5.rb | 6 +++++-
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/app/models/metasploit/credential/krb_enc_key.rb b/app/models/metasploit/credential/krb_enc_key.rb
index cae6c67..d829174 100644
--- a/app/models/metasploit/credential/krb_enc_key.rb
+++ b/app/models/metasploit/credential/krb_enc_key.rb
@@ -73,7 +73,12 @@ class Metasploit::Credential::KrbEncKey < Metasploit::Credential::PasswordHash
   # Callbacks
   #
 
-  serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
+  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
+    serialize :data, coder: Metasploit::Credential::CaseInsensitiveSerializer
+  else
+    serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
+  end
+
   validates_uniqueness_of :data, :case_sensitive => false
 
   #
diff --git a/app/models/metasploit/credential/ntlm_hash.rb b/app/models/metasploit/credential/ntlm_hash.rb
index 4216d86..cefb7a4 100644
--- a/app/models/metasploit/credential/ntlm_hash.rb
+++ b/app/models/metasploit/credential/ntlm_hash.rb
@@ -60,7 +60,11 @@ class Metasploit::Credential::NTLMHash < Metasploit::Credential::ReplayableHash
 
   # Hash results are always downcased when stored in the database
   # This serializer allows for ORM to search in a case-insensitive
-  serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
+  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
+    serialize :data, coder: Metasploit::Credential::CaseInsensitiveSerializer
+  else
+    serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
+  end
 
   #
   # Validations
diff --git a/app/models/metasploit/credential/postgres_md5.rb b/app/models/metasploit/credential/postgres_md5.rb
index 47bdec2..d74a8ee 100644
--- a/app/models/metasploit/credential/postgres_md5.rb
+++ b/app/models/metasploit/credential/postgres_md5.rb
@@ -13,7 +13,11 @@ class Metasploit::Credential::PostgresMD5 < Metasploit::Credential::ReplayableHa
   # Callbacks
   #
 
-  serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
+  if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR >= 1
+    serialize :data, coder: Metasploit::Credential::CaseInsensitiveSerializer
+  else
+    serialize :data, Metasploit::Credential::CaseInsensitiveSerializer
+  end
   validates_uniqueness_of :data, :case_sensitive => false
 
   #