فهرست منبع

Fix setServletContext not being called for AuthorizationManagerWebInvocationPrivilegeEvaluator

Issue gh-10908
Marcus Da Coregio 3 سال پیش
والد
کامیت
9d378103b0
1فایلهای تغییر یافته به همراه4 افزوده شده و 1 حذف شده
  1. 4 1
      config/src/main/java/org/springframework/security/config/annotation/web/builders/WebSecurity.java

+ 4 - 1
config/src/main/java/org/springframework/security/config/annotation/web/builders/WebSecurity.java

@@ -344,7 +344,10 @@ public final class WebSecurity extends AbstractConfiguredSecurityBuilder<Filter,
 			if (filter instanceof AuthorizationFilter) {
 			if (filter instanceof AuthorizationFilter) {
 				AuthorizationManager<HttpServletRequest> authorizationManager = ((AuthorizationFilter) filter)
 				AuthorizationManager<HttpServletRequest> authorizationManager = ((AuthorizationFilter) filter)
 						.getAuthorizationManager();
 						.getAuthorizationManager();
-				privilegeEvaluators.add(new AuthorizationManagerWebInvocationPrivilegeEvaluator(authorizationManager));
+				AuthorizationManagerWebInvocationPrivilegeEvaluator evaluator = new AuthorizationManagerWebInvocationPrivilegeEvaluator(
+						authorizationManager);
+				evaluator.setServletContext(this.servletContext);
+				privilegeEvaluators.add(evaluator);
 			}
 			}
 		}
 		}
 		return new RequestMatcherEntry<>(securityFilterChain::matches, privilegeEvaluators);
 		return new RequestMatcherEntry<>(securityFilterChain::matches, privilegeEvaluators);