summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/printable_uri.rb19
-rw-r--r--test/rubygems/test_gem_printable_uri.rb8
2 files changed, 4 insertions, 23 deletions
diff --git a/lib/rubygems/printable_uri.rb b/lib/rubygems/printable_uri.rb
index 53d9fb7685..0837c42b50 100644
--- a/lib/rubygems/printable_uri.rb
+++ b/lib/rubygems/printable_uri.rb
@@ -16,7 +16,7 @@ class Gem::PrintableUri
def parse_uri
@original_uri = Gem::UriParser.parse_uri(@original_uri)
@uri = @original_uri.clone
- redact_credential
+ redact_credential if valid_uri?
self
end
@@ -30,8 +30,6 @@ class Gem::PrintableUri
end
def original_password
- return unless valid_uri?
-
@original_uri.password
end
@@ -42,40 +40,31 @@ class Gem::PrintableUri
private
def redact_credential
- return unless redactable_credential?
-
if token?
@uri.user = 'REDACTED'
+ @credential_redacted = true
elsif oauth_basic?
@uri.user = 'REDACTED'
+ @credential_redacted = true
elsif password?
@uri.password = 'REDACTED'
+ @credential_redacted = true
end
-
- @credential_redacted = true
end
def redactable_credential?
- return false unless valid_uri?
-
password? || oauth_basic? || token?
end
def password?
- return false unless valid_uri?
-
!!@uri.password
end
def oauth_basic?
- return false unless valid_uri?
-
@uri.password == 'x-oauth-basic'
end
def token?
- return false unless valid_uri?
-
!@uri.user.nil? && @uri.password.nil?
end
end
diff --git a/test/rubygems/test_gem_printable_uri.rb b/test/rubygems/test_gem_printable_uri.rb
index c227fe683a..c9127a42df 100644
--- a/test/rubygems/test_gem_printable_uri.rb
+++ b/test/rubygems/test_gem_printable_uri.rb
@@ -63,10 +63,6 @@ class TestPrintableUri < Gem::TestCase
assert_equal nil, Gem::PrintableUri.parse_uri("https://www.example.com").original_password
end
- def test_original_password_with_invalid_uri
- assert_equal nil, Gem::PrintableUri.parse_uri("https://www.example.com:80index").original_password
- end
-
def test_original_password_with_empty_uri_object
assert_equal nil, Gem::PrintableUri.parse_uri(URI("")).original_password
end
@@ -75,10 +71,6 @@ class TestPrintableUri < Gem::TestCase
assert_equal "pass", Gem::PrintableUri.parse_uri(URI("https://user:pass@example.com")).original_password
end
- def test_original_password_with_other_objects
- assert_equal nil, Gem::PrintableUri.parse_uri(Object.new).original_password
- end
-
def test_to_s_with_user_pass
assert_equal "https://user:REDACTED@example.com", Gem::PrintableUri.parse_uri("https://user:pass@example.com").to_s
end