Don't HTML encode quotes in REST API callback, to fix ONKI Selector (Skosmos 2) #1705
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.
Reasons for creating this PR
ONKI Selector (the legacy JS widget for accessing ONKI/Finto vocabularies) wasn't working, because it uses the
callback
parameter with a value that includes quote characters. The input sanitizing that was quite recently added to RestController broke this functionality.The symptom is that the Skosmos REST API, when called with a URL like https://api.finto.fi/rest/v1/yso/?callback=onkiSearch["ysoSearch"].setRestLangs , generates a response like this:
onkiSearch["ysoSearch"].setRestLangs(...)
and this causes a JS syntax error. (Uncaught SyntaxError: expected expression, got '&')This PR fixes the problem by preventing the HTML encoding of quote characters.
Link to relevant issue(s), if any
Description of the changes in this PR
callback
parameter, apply the FILTER_FLAG_NO_ENCODE_QUOTES option which prevents encoding quotesKnown problems or uncertainties in this PR
Not sure if the input sanitizing for the callback parameter (which is needed for generating JS, not HTML) is a great idea in the first place, but at least this fixes the issue with quotes.
Checklist
.sr-only
class, color contrast)