Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 具有安全性的Spring引导-测试无法加载上下文_Java_Spring_Spring Mvc_Spring Security - Fatal编程技术网

Java 具有安全性的Spring引导-测试无法加载上下文

Java 具有安全性的Spring引导-测试无法加载上下文,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我有一个Spring boot应用程序,只是增加了安全性。这破坏了我的测试,因为上下文甚至无法加载 测试处理的是服务层和持久层,因此安全性根本不应该影响它们。这是为控制器设计的 我遵循了一个官方github示例,并进行了以下简单的安全配置: @Configuration @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) public class ApplicationSecurity extends WebSecurityConfigurerAda

我有一个Spring boot应用程序,只是增加了安全性。这破坏了我的测试,因为上下文甚至无法加载

测试处理的是服务层和持久层,因此安全性根本不应该影响它们。这是为控制器设计的

我遵循了一个官方github示例,并进行了以下简单的安全配置:

@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class ApplicationSecurity extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.antMatcher("/**").csrf().disable();

        http.authorizeRequests()
                .antMatchers("/user").permitAll()
                .anyRequest().authenticated();
    }
}
运行该应用程序工作正常,符合预期。但是运行测试,例如:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DeadlinesApplication.class)
public class TaskDAOHibernateTest {
    @Test
    @Transactional
    public void someTest() {...}
}
在以下情况下失败:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationSecurity': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setAuthenticationConfiguration(org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
@EnableWebSecurity
注释添加到类中确实允许通过测试,但是在文档中有以下内容:

To switch off the default web security configuration completely you can add a bean with @EnableWebSecurity

我想保留默认配置,只是有选择地覆盖它。

尝试将
@WebAppContext
添加到测试中。它应该来自哪个包?我到处都找不到。我的坏。。我的意思是,
@WebAppConfiguration
。尝试将
@WebAppContext
添加到测试中。它应该来自哪个包?我到处都找不到。我的坏。。我的意思是,
@WebAppConfiguration