[9.x] Allow signed URLs with custom key resolver #44254
Merged
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.
In case there are multiple applications communicating together, you don't want to share the same encryption key throughout all applications, but you may have a different pre-shared secret to sign URLs with. With this new
withKeyResolver
method on the UrlGenerator, a clone of the current UrlGenerator will be created where a different key can be used to validate the signature or generate signed URLsIf you were to call
url()->setKeyResolver()
, then this will change the key for the remainder of the request, potentially generating incorrect signed URLs where this custom key wasn't needed.Two very basic examples of how it could be used:
It can be used in middleware to validate with custom key:
It can be used in a controller to generate a URL with custom key: