summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2024-05-07 18:36:46 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2024-05-07 18:36:46 +0000
commitb4bfb6b581035b52a193c74ac74825f3652a014a (patch)
tree5cb102d4869ab473f9c8fa2e7844079b623ca5da
parent9ef1cdd375793b05d9ef7a6036678168f2704750 (diff)
downloadredmine-b4bfb6b581035b52a193c74ac74825f3652a014a.tar.gz
redmine-b4bfb6b581035b52a193c74ac74825f3652a014a.zip
Replaces use of Digest::MD5 / Digest::SHA1 with ActiveSupport::Digest (#35217).
Patch by Jens Krämer (@jkraemer). git-svn-id: https://svn.redmine.org/redmine/trunk@22816 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/repositories_controller.rb2
-rw-r--r--app/models/attachment.rb4
-rw-r--r--app/views/repositories/_dir_list_content.html.erb2
-rw-r--r--lib/redmine/wiki_formatting.rb3
-rw-r--r--lib/redmine/wiki_formatting/section_helper.rb4
-rw-r--r--lib/redmine/wiki_formatting/textile/formatter.rb2
-rw-r--r--test/functional/wiki_controller_test.rb2
-rw-r--r--test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb2
-rw-r--r--test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb2
-rw-r--r--test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb7
10 files changed, 13 insertions, 17 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 2645ded40..8deb35404 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -279,7 +279,7 @@ class RepositoriesController < ApplicationController
User.current.preference.save
end
@cache_key = "repositories/diff/#{@repository.id}/" +
- Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}-#{current_language}")
+ ActiveSupport::Digest.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}-#{current_language}")
unless read_fragment(@cache_key)
@diff = @repository.diff(@path, @rev, @rev_to)
(show_error_not_found; return) unless @diff
diff --git a/app/models/attachment.rb b/app/models/attachment.rb
index c9054e903..59addf528 100644
--- a/app/models/attachment.rb
+++ b/app/models/attachment.rb
@@ -135,7 +135,7 @@ class Attachment < ApplicationRecord
end
# Copies the temporary file to its final location
- # and computes its MD5 hash
+ # and computes its hash
def files_to_final_location
if @temp_file
self.disk_directory = target_directory
@@ -559,7 +559,7 @@ class Attachment < ApplicationRecord
if %r{^[a-zA-Z0-9_\.\-]*$}.match?(filename) && filename.length <= 50
ascii = filename
else
- ascii = Digest::MD5.hexdigest(filename)
+ ascii = ActiveSupport::Digest.hexdigest(filename)
# keep the extension if any
ascii << $1 if filename =~ %r{(\.[a-zA-Z0-9]+)$}
end
diff --git a/app/views/repositories/_dir_list_content.html.erb b/app/views/repositories/_dir_list_content.html.erb
index ee68c1b7a..396c7f6d0 100644
--- a/app/views/repositories/_dir_list_content.html.erb
+++ b/app/views/repositories/_dir_list_content.html.erb
@@ -1,5 +1,5 @@
<% @entries.each do |entry| %>
-<% tr_id = Digest::MD5.hexdigest(entry.path)
+<% tr_id = ActiveSupport::Digest.hexdigest(entry.path)
depth = params[:depth].to_i %>
<% ent_path = Redmine::CodesetUtil.replace_invalid_utf8(entry.path) %>
<% ent_name = Redmine::CodesetUtil.replace_invalid_utf8(entry.name) %>
diff --git a/lib/redmine/wiki_formatting.rb b/lib/redmine/wiki_formatting.rb
index 3486c74c6..cc68e9972 100644
--- a/lib/redmine/wiki_formatting.rb
+++ b/lib/redmine/wiki_formatting.rb
@@ -18,7 +18,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require_relative 'wiki_formatting/textile/redcloth3'
-require 'digest/md5'
module Redmine
module WikiFormatting
@@ -110,7 +109,7 @@ module Redmine
# Returns a cache key for the given text +format+, +text+, +object+ and +attribute+ or nil if no caching should be done
def cache_key_for(format, text, object, attribute)
if object && attribute && !object.new_record? && format.present?
- "formatted_text/#{format}/#{object.class.model_name.cache_key}/#{object.id}-#{attribute}-#{Digest::MD5.hexdigest text}"
+ "formatted_text/#{format}/#{object.class.model_name.cache_key}/#{object.id}-#{attribute}-#{ActiveSupport::Digest.hexdigest text}"
end
end
diff --git a/lib/redmine/wiki_formatting/section_helper.rb b/lib/redmine/wiki_formatting/section_helper.rb
index 9221d990d..6f53a3f8e 100644
--- a/lib/redmine/wiki_formatting/section_helper.rb
+++ b/lib/redmine/wiki_formatting/section_helper.rb
@@ -22,13 +22,13 @@ module Redmine
module SectionHelper
def get_section(index)
section = extract_sections(index)[1]
- hash = Digest::MD5.hexdigest(section)
+ hash = ActiveSupport::Digest.hexdigest(section)
return section, hash
end
def update_section(index, update, hash=nil)
t = extract_sections(index)
- if hash.present? && hash != Digest::MD5.hexdigest(t[1])
+ if hash.present? && hash != ActiveSupport::Digest.hexdigest(t[1])
raise Redmine::WikiFormatting::StaleSectionError
end
diff --git a/lib/redmine/wiki_formatting/textile/formatter.rb b/lib/redmine/wiki_formatting/textile/formatter.rb
index 1cacfeed6..35684a6c7 100644
--- a/lib/redmine/wiki_formatting/textile/formatter.rb
+++ b/lib/redmine/wiki_formatting/textile/formatter.rb
@@ -17,8 +17,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-require 'digest/md5'
-
module Redmine
module WikiFormatting
module Textile
diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb
index 215c9caf4..31dcf395d 100644
--- a/test/functional/wiki_controller_test.rb
+++ b/test/functional/wiki_controller_test.rb
@@ -677,7 +677,7 @@ class WikiControllerTest < Redmine::ControllerTest
:version => 3
},
:section => 2,
- :section_hash => Digest::MD5.hexdigest("wrong hash")
+ :section_hash => ActiveSupport::Digest.hexdigest("wrong hash")
}
end
end
diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb
index 16bd8c972..03376e342 100644
--- a/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb
+++ b/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb
@@ -292,7 +292,7 @@ class Redmine::WikiFormatting::CommonMark::FormatterTest < ActionView::TestCase
assert_kind_of Array, result
assert_equal 2, result.size
assert_equal expected, result.first, "section content did not match"
- assert_equal Digest::MD5.hexdigest(expected), result.last, "section hash did not match"
+ assert_equal ActiveSupport::Digest.hexdigest(expected), result.last, "section hash did not match"
end
end
end
diff --git a/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb
index 75d3ff365..012ec7ec9 100644
--- a/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb
+++ b/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb
@@ -349,6 +349,6 @@ class Redmine::WikiFormatting::MarkdownFormatterTest < ActionView::TestCase
assert_kind_of Array, result
assert_equal 2, result.size
assert_equal expected, result.first, "section content did not match"
- assert_equal Digest::MD5.hexdigest(expected), result.last, "section hash did not match"
+ assert_equal ActiveSupport::Digest.hexdigest(expected), result.last, "section hash did not match"
end
end
diff --git a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
index cdbad2a55..32280cfdf 100644
--- a/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
+++ b/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
@@ -19,7 +19,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require_relative '../../../../test_helper'
-require 'digest/md5'
class Redmine::WikiFormatting::TextileFormatterTest < ActionView::TestCase
def setup
@@ -491,13 +490,13 @@ class Redmine::WikiFormatting::TextileFormatterTest < ActionView::TestCase
assert_equal(
[STR_WITHOUT_PRE[0], replacement, STR_WITHOUT_PRE[2..4]].flatten.join("\n\n"),
@formatter.new(TEXT_WITHOUT_PRE).
- update_section(2, replacement, Digest::MD5.hexdigest(STR_WITHOUT_PRE[1]))
+ update_section(2, replacement, ActiveSupport::Digest.hexdigest(STR_WITHOUT_PRE[1]))
)
end
def test_update_section_with_wrong_hash_should_raise_an_error
assert_raise Redmine::WikiFormatting::StaleSectionError do
- @formatter.new(TEXT_WITHOUT_PRE).update_section(2, "New text", Digest::MD5.hexdigest("Old text"))
+ @formatter.new(TEXT_WITHOUT_PRE).update_section(2, "New text", ActiveSupport::Digest.hexdigest("Old text"))
end
end
@@ -809,6 +808,6 @@ class Redmine::WikiFormatting::TextileFormatterTest < ActionView::TestCase
assert_kind_of Array, result
assert_equal 2, result.size
assert_equal expected, result.first, "section content did not match"
- assert_equal Digest::MD5.hexdigest(expected), result.last, "section hash did not match"
+ assert_equal ActiveSupport::Digest.hexdigest(expected), result.last, "section hash did not match"
end
end