summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenny Shen <jenny.shen@shopify.com>2023-02-21 12:48:37 -0500
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-04-12 11:51:06 +0900
commitef85b6de42c9d73451eb392178e1faa95b002edd (patch)
tree7daf3d337817c05f4528b92ae68d27228862c0df
parent353f9adcccc9928eb6fc0a7b581d31a1f5ca2d7b (diff)
downloadruby-ef85b6de42c9d73451eb392178e1faa95b002edd.tar.gz
[rubygems/rubygems] Add access control headers for all requests to allow RubyGems.org to render the response
https://github.com/rubygems/rubygems/commit/22b329eb60
-rw-r--r--lib/rubygems/webauthn_listener/response.rb5
-rw-r--r--lib/rubygems/webauthn_listener/response/response_no_content.rb4
-rw-r--r--lib/rubygems/webauthn_listener/response/response_ok.rb4
-rw-r--r--test/rubygems/test_webauthn_listener_response.rb9
4 files changed, 9 insertions, 13 deletions
diff --git a/lib/rubygems/webauthn_listener/response.rb b/lib/rubygems/webauthn_listener/response.rb
index c4ab492f82..8596e7bd69 100644
--- a/lib/rubygems/webauthn_listener/response.rb
+++ b/lib/rubygems/webauthn_listener/response.rb
@@ -44,7 +44,6 @@ class Gem::WebauthnListener
end
def access_control_headers
- return "" unless add_access_control_headers?
<<~RESPONSE
Access-Control-Allow-Origin: #{host}
Access-Control-Allow-Methods: POST
@@ -66,10 +65,6 @@ class Gem::WebauthnListener
raise NotImplementedError
end
- def add_access_control_headers?
- false
- end
-
def body; end
end
end
diff --git a/lib/rubygems/webauthn_listener/response/response_no_content.rb b/lib/rubygems/webauthn_listener/response/response_no_content.rb
index 39aad7fe96..feb6cade8c 100644
--- a/lib/rubygems/webauthn_listener/response/response_no_content.rb
+++ b/lib/rubygems/webauthn_listener/response/response_no_content.rb
@@ -7,8 +7,4 @@ class Gem::WebauthnListener::ResponseNoContent < Gem::WebauthnListener::Response
def status
"204 No Content"
end
-
- def add_access_control_headers?
- true
- end
end
diff --git a/lib/rubygems/webauthn_listener/response/response_ok.rb b/lib/rubygems/webauthn_listener/response/response_ok.rb
index c4e7de3e2c..83966b58b8 100644
--- a/lib/rubygems/webauthn_listener/response/response_ok.rb
+++ b/lib/rubygems/webauthn_listener/response/response_ok.rb
@@ -8,10 +8,6 @@ class Gem::WebauthnListener::ResponseOk < Gem::WebauthnListener::Response
"200 OK"
end
- def add_access_control_headers?
- true
- end
-
def body
"success"
end
diff --git a/test/rubygems/test_webauthn_listener_response.rb b/test/rubygems/test_webauthn_listener_response.rb
index 5820ae9957..b3e54e0f19 100644
--- a/test/rubygems/test_webauthn_listener_response.rb
+++ b/test/rubygems/test_webauthn_listener_response.rb
@@ -57,6 +57,9 @@ class WebauthnListenerResponseTest < Gem::TestCase
expected_payload = <<~RESPONSE
HTTP/1.1 405 Method Not Allowed
Connection: close
+ Access-Control-Allow-Origin: rubygems.example
+ Access-Control-Allow-Methods: POST
+ Access-Control-Allow-Headers: Content-Type, Authorization, x-csrf-token
Allow: GET, OPTIONS
RESPONSE
@@ -69,6 +72,9 @@ class WebauthnListenerResponseTest < Gem::TestCase
expected_payload = <<~RESPONSE
HTTP/1.1 404 Not Found
Connection: close
+ Access-Control-Allow-Origin: rubygems.example
+ Access-Control-Allow-Methods: POST
+ Access-Control-Allow-Headers: Content-Type, Authorization, x-csrf-token
RESPONSE
assert_equal expected_payload, payload
@@ -80,6 +86,9 @@ class WebauthnListenerResponseTest < Gem::TestCase
expected_payload = <<~RESPONSE
HTTP/1.1 400 Bad Request
Connection: close
+ Access-Control-Allow-Origin: rubygems.example
+ Access-Control-Allow-Methods: POST
+ Access-Control-Allow-Headers: Content-Type, Authorization, x-csrf-token
Content-Type: text/plain
Content-Length: 22