org.springframeworkbeans.factory.BeanCreationException:创建名为' springSecurityFilterChain'的bean时出错。

时间:2017-01-29 17:35:06

标签: spring spring-security

** org.springframeworkbeans.factory.BeanCreationException:创建名称为' springSecurityFilterChain' **的bean时出错 这是Spring MVC注释项目。 任何人都可以建议问题出在哪里? SecurityConfiguration.java

Test

package com.yogesh.shoponlinefrontend.config;

SecurityWebApplicationInitializer.java

 package com.yogesh.shoponlinefrontend.config;
    /*  Added from spring security
    */

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

    @Configuration
    @EnableWebSecurity
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

         @Autowired
            public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
             System.out.println("in securityconfig");

                auth.inMemoryAuthentication().withUser("yog").password("yog").roles("USER");
                /*auth.inMemoryAuthentication().withUser("admin").password("root123").roles("ADMIN");
                auth.inMemoryAuthentication().withUser("dba").password("root123").roles("ADMIN","DBA");*///dba have two roles.
            }

         @Override
            protected void configure(HttpSecurity http) throws Exception {

              http.authorizeRequests()
                .antMatchers("/", "/home").permitAll() 
                .antMatchers("/admin/**").access("hasRole('ADMIN')")
                .antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")
                .and()  .formLogin().loginPage("/login").failureUrl("/login?error")   
    /*              .usernameParameter("username").passwordParameter("password")
    */          
                .and().csrf();
    /*          .and().exceptionHandling().accessDeniedPage("/Access_Denied");
    */       System.out.println(" End in securityconfig");

            }

        }

APPCONFIG.java

import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;

/*  Added from spring security
*/
public class SecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer {

    public SecurityWebApplicationInitializer() {
        super(SecurityConfiguration.class);
    }
}

APPInitializaer.java

//DispatcherServlet 
package com.yogesh.shoponlinefrontend.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.yogesh.shoponlinefrontend,com.yogesh.shoponlineback")

public class AppConfig extends WebMvcConfigurerAdapter {
    @Bean
    public ViewResolver viewResolver() {

        System.out.println("starting of the method viewResolver");
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        System.out.println("ending of the method viewResolver");

        return viewResolver;
    }

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

}

这是stacktrace

public void onStartup(ServletContext servletContext) throws ServletException {
    AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
    appContext.register(AppConfig.class);

    ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
            "SpringDispatcher", new DispatcherServlet(appContext));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");

1 个答案:

答案 0 :(得分:3)

给定异常的根本原因是if (calcTipsPerHour <= 30) { totalHoursView.setText(Double.toString(resultTotalHours)); tipsPerHourView.setText(Double.toString(calcTipsPerHour)); barsCutView.setText(Double.toString(0)); taxDepositView.setText(Double.toString(0)); waiter1Pay.setText(Double.toString(resultWaiter1NoTax)); waiter2Pay.setText(Double.toString(resultWaiter2NoTax)); waiter3Pay.setText(Double.toString(resultWaiter3NoTax)); waiter4Pay.setText(Double.toString(resultWaiter4NoTax)); } else { totalHoursView.setText(Double.toString(resultTotalHours)); tipsPerHourView.setText(Double.toString(resultTipsPerHour)); barsCutView.setText(Double.toString(resultBarsCut)); taxDepositView.setText(Double.toString(resultTaxDeposit)); waiter1Pay.setText(Double.toString(resultWaiter1Pay)); waiter2Pay.setText(Double.toString(resultWaiter2Pay)); waiter3Pay.setText(Double.toString(resultWaiter3Pay)); waiter4Pay.setText(Double.toString(resultWaiter4Pay)); } ,看看给定的类jar是否在classpath