Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为';springSecurityFilterChain';是用SpringMVC定义的异常_Java_Spring Mvc_Tomcat_Jakarta Ee_Spring Social - Fatal编程技术网

Java org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为';springSecurityFilterChain';是用SpringMVC定义的异常

Java org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为';springSecurityFilterChain';是用SpringMVC定义的异常,java,spring-mvc,tomcat,jakarta-ee,spring-social,Java,Spring Mvc,Tomcat,Jakarta Ee,Spring Social,我正在创建基于Spring社交的登录或使用Spring security的Spring应用程序 我的SecurityConfig.java如下所示: @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception {

我正在创建基于Spring社交的登录或使用Spring security的Spring应用程序

我的SecurityConfig.java如下所示:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .formLogin()
                .loginPage("/login")
                .loginProcessingUrl("/login/authenticate")
                .failureUrl("/login?error=bad_credentials")
            .and()
                .logout()
                    .deleteCookies("JSESSIONID")
                    .logoutUrl("/logout")
                    .logoutSuccessUrl("/login")
            .and()
                .authorizeRequests()
                    .antMatchers(
                            "/auth/**",
                            "/login",
                            "/signup/**",
                            "/user/register/**"
                    ).permitAll()
            .and()
                .apply(new SpringSocialConfigurer()
                .postLoginUrl("/")
                .alwaysUsePostLoginUrl(true));
}

@Bean
public SocialUserDetailsService socialUsersDetailService() {
    return new UserDetailServiceImpl(userDetailsService());
}
WebConfig.java:

@EnableWebMvc
@Configuration
@ComponentScan({ "com.spark.webcontroller" })
@Import({ SecurityConfig.class, SocialConfig.class })
@PropertySource("classpath:resources/application.properties")
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}

public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

@Bean
public ServletContextTemplateResolver templateResolver() {
    ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
    templateResolver.setPrefix("/WEB-INF/view/html/");
    templateResolver.setSuffix(".html");
    templateResolver.setTemplateMode("HTML5");
    templateResolver.setOrder(1);
    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.setTemplateResolver(templateResolver());
    return templateEngine;
}

@Bean
public ThymeleafViewResolver viewResolver() {
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(templateEngine());
    viewResolver.setOrder(1);
    return viewResolver;
}   
最后是我的WebInitilizar.java

public class WebInitilizer extends
    AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
    return new Class[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
    return new String[] { "/" };
}
公共类WebInitilizer扩展
AbstractAnnotationConfigDispatchersServletInitializer{
@凌驾
受保护类[]getRootConfigClasses(){
返回新类[]{RootConfig.Class};
}
@凌驾
受保护类[]getServletConfigClasses(){
返回新类[]{WebConfig.Class};
}
@凌驾
受保护的字符串[]getServletMappings(){
返回新字符串[]{”/“};
}
RootConfig.java仅用于添加服务类

当我在Tomcat8上运行此应用程序时,我会

org.springframework.beans.factory.NoSuchBean定义异常:未定义名为“springSecurityFilterChain”的bean 位于org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) 位于org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168) 位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281) 位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) 位于org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:962) 位于org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:324) 位于org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:235) 位于org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:199) 位于org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 位于org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:109) 位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4615) 位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5222) 位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399) 位于java.util.concurrent.FutureTask.run(未知源) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源) 位于java.lang.Thread.run(未知源)

在此方面的任何帮助都将不胜感激