Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Refactor XOR CSRF Token Encoding into Separate Encoder Class with Unit Tests #17969

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
nieuwmijnleven wants to merge 1 commit into spring-projects:main
base: main
Choose a base branch
Loading
from nieuwmijnleven:feature/refactor-xor-csrf-token-encoder

Conversation

Copy link

@nieuwmijnleven nieuwmijnleven commented Sep 28, 2025

Description

This PR refactors the XOR-based CSRF token encoding and decoding logic out of the XorCsrfTokenRequestAttributeHandler class into a new dedicated class named XorCsrfTokenEncoder.

Key Changes

  • Extracted XOR encode/decode logic into the XorCsrfTokenEncoder class with public methods

  • Updated XorCsrfTokenRequestAttributeHandler to delegate encoding and decoding to the new encoder

  • Introduced a CsrfTokenEncoder interface to define the encoding/decoding contract

  • Added comprehensive unit tests for XorCsrfTokenEncoder to ensure reliability

  • Supported injection of a custom SecureRandom instance for improved flexibility

  • Preserved existing behavior and encoding mechanism

This refactor improves code modularity and testability, making maintenance easier and future enhancements more straightforward.

Closes #17968

Moved XOR-based CSRF token encoding/decoding logic into a new public class `XorCsrfTokenEncoder`
that implements the `CsrfTokenEncoder` interface. This improves testability, readability, and
separation of concerns.
- Created `CsrfTokenEncoder` interface to define encoding/decoding contract
- Implemented `XorCsrfTokenEncoder` with secure random masking logic
- Updated `XorCsrfTokenRequestAttributeHandler` to delegate to the encoder
- Added support for injecting custom `SecureRandom` instance
- Preserved existing behavior and encoding mechanism
This refactor enables easier unit testing and future extensibility.
Signed-off-by: Cheol Jeon <nieuwmijnleven@outlook.com>
@nieuwmijnleven nieuwmijnleven force-pushed the feature/refactor-xor-csrf-token-encoder branch from d143196 to 9db12e4 Compare September 29, 2025 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
status: waiting-for-triage An issue we've not yet triaged
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Refactor XOR CSRF Token Encoding Logic into Public Class to Improve Testability and Maintainability

AltStyle によって変換されたページ (->オリジナル) /