fix: prevent clear() from destroying all sessionStorage #2144
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.
Hey @damienbod (and fellow contributors!) - thanks for this library and all the work maintaining it!
Summary
This PR updates the storage behavior in
BrowserStorageServiceto ensure thatclear()andremove()only remove data associated with the specific OIDC configuration, instead of clearing all browser storage for the origin.Problem
The previous implementation called
abstractSecurityStorage.clear(), which could result in the underlyingsessionStorage.clear()/localStorage.clear()being invoked. This cleared all keys for the origin, including:Goal
Ensure correct isolation between configurations and preserve consumer application data, while maintaining compatibility with the existing storage contract.
Changes
clear()andremove()now remove only the entry associated with the currentconfigIdconfigIdexists before storing / clearingread()andwrite(), which already operate onconfigIdBenefits
Thanks again @damienbod for the library, happy to adjust anything here if needed! I appreciate the time and consideration!