fix(basic-auth): handle passing invalid value to atob()
#1122
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR will fix #1121.
If an invalid value like
G9ubzphY29vbHByb2plY3Q=
is passed toatob()
, it should throw aDOMException
. However, the existing Basic Auth middleware cannot handle this, resulting in a "500 Internal Error" when an invalid string is sent.The
jest-environment-miniflare
testing environment does not throw an exception fromatob()
. Therefore, this PR includes a test for this inruntime_tests/deno/middleware.test.tsx
. The implementation in Deno is correct according to the spec.Regarding the implementation, it uses
try
, even though we can check if the string is valid or invalid for Base64. This is because testing is difficult due to the above reasons, so I believe we need to keep the implementation as simple as possible.