默认情况下,spring boot@WebIntegrationTest是安全的

默认情况下,spring boot@WebIntegrationTest是安全的,spring,spring-mvc,spring-security,spring-boot,integration-testing,Spring,Spring Mvc,Spring Security,Spring Boot,Integration Testing,我对spring boot比较陌生,现在我想为我的第一个应用程序编写一些集成测试 我的应用程序提供了几个REST Web服务,主应用程序是这样启动的 @EnableAutoConfiguration @RestController @SpringBootApplication public class DistributorWebserviceApplication implements ApplicationContextAware {..} 应用程序本身似乎已正确配置,但在集成测试

我对spring boot比较陌生,现在我想为我的第一个应用程序编写一些集成测试

我的应用程序提供了几个REST Web服务,主应用程序是这样启动的

@EnableAutoConfiguration
@RestController
@SpringBootApplication
public class DistributorWebserviceApplication implements
    ApplicationContextAware {..}
应用程序本身似乎已正确配置,但在集成测试中,webservice端点是安全的,需要用户名和密码!?我不是故意配置的

集成测试类

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DistributorWebserviceApplicationIntegrationTestConfiguration.class)
@WebIntegrationTest("server.port=0")
public class DistributorWebserviceApplicationIntegrationTest {..}
弹簧配置

@EnableAutoConfiguration
@Configuration
public class DistributorWebserviceApplicationIntegrationTestConfiguration {..}
在测试方法中调用webservice,如

String url = String.format("http://localhost:%s%s", serverPort,
    DistributorWebserviceApplication.URL_QUEUE_DISTRIBUTOR_JOB);
String result = restTemplate.postForObject(url, distributorJob,
    String.class);
产生结果 {“timestamp”:1431006031152,“status”:401,“error”:“Unauthorized”,“message”:“访问此资源需要完全身份验证”,“path”:“/queueDistributorJob”}

是否有可能禁用默认安全配置


提前谢谢你

您想为应用程序禁用Spring安全性还是仅为测试禁用?@RobWinch我想为集成测试禁用Spring安全性。在应用程序中,Spring安全性已配置并按预期工作。“在应用程序中,Spring安全性已配置并按预期工作。”表示什么?您是否需要用户名/密码才能访问该特定端点?REST webservice方法由使用IP筛选器的spring security保护。在测试中,所有REST webservice方法都有一个基本的身份验证——可能是因为spring安全性位于类路径中。