Set all dispatch types for OncePerRequestFilter #39859
Closed
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.
As I said in a Stack Overflow question that I posted yesterday, Spring SessionRepositoryFilter is not applied to forwarded requests.
When there's an error, then the request is forwarded to /error, with a dispatch type of
ERROR
, butSessionRepositoryFilter
is only applied to requests with dispatch typeREQUEST
. That means that a new session ID is created by tomcat, and the client uses this on subsequent requests, which are then rejected as unauthorized by the session repository.AbstractFilterRegistrationBean#determineDispatcherTypes
sets all dispatch types for filters that extendorg.springframework.web.filter.OncePerRequestFilter
inspring-web
, butSessionRepositoryFilter
extendsorg.springframework.session.web.http.OncePerRequestFilter
inspring-session-core
.This change sets all dispatch types for filters extending either
OncePerRequestFilter
class.