Java 如何使用已有的WebApplicationInitializer配置Spring安全性?
我正在用Spring/SpringMVC做一个web站点项目,我学习了如何用java类和注释方法配置Spring,这比XML要好得多 现在我想在我的应用程序中使用Spring安全性。但是,我无法理解如何使用现有的Java 如何使用已有的WebApplicationInitializer配置Spring安全性?,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我正在用Spring/SpringMVC做一个web站点项目,我学习了如何用java类和注释方法配置Spring,这比XML要好得多 现在我想在我的应用程序中使用Spring安全性。但是,我无法理解如何使用现有的WebApplicationInitializer配置它 不太清楚 以下是我的代码和我目前掌握的内容: public class AppInitializer implements WebApplicationInitializer{ //public class AppInitiali
WebApplicationInitializer
配置它
不太清楚
以下是我的代码和我目前掌握的内容:
public class AppInitializer implements WebApplicationInitializer{
//public class AppInitializer {
private static final Class<?>[] CONFIG_CLASSES = new Class<?>[]{SiteConfigs.class, AdminConfigurations.class};
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
appContext.register(CONFIG_CLASSES);
DispatcherServlet servlet = new DispatcherServlet(appContext);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", servlet);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
因此,如何配置Spring安全性,以便
springSecurityFilterChain
初始化异常告诉您没有ContextLoaderListener,在您的情况下,这是正确的。您只有一个DispatcherServlet
。默认情况下,Spring Security将仅从根应用程序上下文(由ContextLoaderListener加载的上下文)中查找筛选器
如果您想让它使用DispatcherServlet
s上下文,您必须告诉它。您可以通过重写getDispatcherWebApplicationContextSuffix()
方法来告诉它要使用哪个
您不局限于一个WebApplicationInitializer
您通常可以有多个,一个用于应用程序引导,另一个用于添加安全性。然后可以利用Spring便利类来保存几行代码。有关示例,请参见
HTTP Status 500 - No WebApplicationContext found: no ContextLoaderListener registered?