Previously AbstractSecurityWebApplicationInitializer delegated to a WebApplicationInitializer, but it caused issues in some instances where a container would pass the annonymous inner class to SpringServletContainerInitializer which caused errors on startup. Now AbstractSecurityWebApplicationInitializer registers the ContextLoaderListener on its own instead of delegating.