Skip to content

Commit db52c77

Browse files
committed
Minor updates in HandlerMappingIntrospector
Required by Spring Security to complete work on spring-projects/spring-security#14128 The setCache and resetCache methods used from createCacheFilter are now public. Generally they don't need to be used outside of the Filter if only making checks against the current request. Spring Security, however, makes additional checks against requests with alternative paths.
1 parent 1e742aa commit db52c77

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

spring-webmvc/src/main/java/org/springframework/web/servlet/handler/HandlerMappingIntrospector.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,12 @@ public List<HandlerMapping> getHandlerMappings() {
191191
public Filter createCacheFilter() {
192192
return (request, response, chain) -> {
193193
CachedResult previous = setCache((HttpServletRequest) request);
194-
chain.doFilter(request, response);
195-
resetCache(request, previous);
194+
try {
195+
chain.doFilter(request, response);
196+
}
197+
finally {
198+
resetCache(request, previous);
199+
}
196200
};
197201
}
198202

@@ -206,7 +210,7 @@ public Filter createCacheFilter() {
206210
* @since 6.0.14
207211
*/
208212
@Nullable
209-
private CachedResult setCache(HttpServletRequest request) {
213+
public CachedResult setCache(HttpServletRequest request) {
210214
CachedResult previous = (CachedResult) request.getAttribute(CACHED_RESULT_ATTRIBUTE);
211215
if (previous == null || !previous.matches(request)) {
212216
HttpServletRequest wrapped = new AttributesPreservingRequest(request);
@@ -245,7 +249,7 @@ private CachedResult setCache(HttpServletRequest request) {
245249
* a filter after delegating to the rest of the chain.
246250
* @since 6.0.14
247251
*/
248-
private void resetCache(ServletRequest request, @Nullable CachedResult cachedResult) {
252+
public void resetCache(ServletRequest request, @Nullable CachedResult cachedResult) {
249253
request.setAttribute(CACHED_RESULT_ATTRIBUTE, cachedResult);
250254
}
251255

@@ -363,7 +367,7 @@ private <T> T doWithHandlerMapping(
363367
* @since 6.0.14
364368
*/
365369
@SuppressWarnings("serial")
366-
private static final class CachedResult {
370+
public static final class CachedResult {
367371

368372
private final DispatcherType dispatcherType;
369373

0 commit comments

Comments
 (0)