Skip to content

Commit 5700742

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 f962211 commit 5700742

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)