web/src/main/java/org/springframework/security/web/context/support/SecurityWebApplicationContextUtils.java
public static WebApplicationContext findRequiredWebApplicationContext(ServletContext servletContext) {
		WebApplicationContext wac = _findWebApplicationContext(servletContext);
		if (wac == null) {
			throw new IllegalStateException("No WebApplicationContext found: no ContextLoaderListener registered?");
		}
		return wac;
	}
public static WebApplicationContext findRequiredWebApplicationContext(ServletContext servletContext) {
		WebApplicationContext wac = _findWebApplicationContext(servletContext);
		if (wac == null) {
			throw new IllegalStateException("No WebApplicationContext found: no ContextLoaderListener registered?");
		}
		return wac;
	}
Find a unique {@code WebApplicationContext} for this web app: either the
root web app context (preferred) or a unique {@code WebApplicationContext}
among the registered {@code ServletContext} attributes (typically coming
from a single {@code DispatcherServlet} in the current web application).
<p>Note that {@code DispatcherServlet}'s exposure of its context can be
controlled through its {@code publishContext} property, which is {@code true}
by default but can be selectively switched to only publish a single context
despite multiple {@code DispatcherServlet} registrations in the web app.
@param servletContext ServletContext to find the web application context for
@return the desired WebApplicationContext for this web app
@see #getWebApplicationContext(ServletContext)
@see ServletContext#getAttributeNames()
@throws IllegalStateException if no WebApplicationContext can be found