Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用已有的WebApplicationInitializer配置Spring安全性?_Java_Spring_Spring Mvc_Spring Security - Fatal编程技术网

Java 如何使用已有的WebApplicationInitializer配置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

我正在用Spring/SpringMVC做一个web站点项目,我学习了如何用java类和注释方法配置Spring,这比XML要好得多

现在我想在我的应用程序中使用Spring安全性。但是,我无法理解如何使用现有的
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?