Spring security DataSourceInitializer:ApplicationEventMulticaster未初始化
我正在使用带嵌入式数据库的SpringBoot1.2.0。 使用类路径中的schema.sql文件初始化数据库。 在我将@EnableGlobalMethodSecurity注释添加到WebSecurity配置类之前,它工作得很好 java.lang.IllegalStateException:ApplicationEventMulticaster未初始化从DataSourceInitializer.runSchemaScripts引发异常 有什么问题吗 代码如下:Spring security DataSourceInitializer:ApplicationEventMulticaster未初始化,spring-security,spring-boot,Spring Security,Spring Boot,我正在使用带嵌入式数据库的SpringBoot1.2.0。 使用类路径中的schema.sql文件初始化数据库。 在我将@EnableGlobalMethodSecurity注释添加到WebSecurity配置类之前,它工作得很好 java.lang.IllegalStateException:ApplicationEventMulticaster未初始化从DataSourceInitializer.runSchemaScripts引发异常 有什么问题吗 代码如下: @Configuration
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@EnableGlobalMethodSecurity(securedEnabled = true)
@Configuration
class WebSecurityConfiguration extends GlobalAuthenticationConfigurerAdapter {
@Autowired
DataSource dataSource;
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource);
}
}
我认为解决方案是不使用
init
方法来设置JDBC身份验证。尝试使用扩展globalaauthenticationconfigureradapter
并重写config
方法的单独类。如下所示WebSecurityConfiguration
在主应用程序的不同类中,对吗?WebSecurityConfiguration
在不同类中。我还试图使它成为主应用程序的内部类。但是我得到了相同的异常。我将JDBC身份验证设置移动到configure
方法,但是我得到了相同的异常。问题看起来与。所以我将DML移到schema.sql中。