最近,我使用以下类将Spring Security添加到了Spring Boot项目中:
@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true)
@EnableWebSecurity
public class MySecurityConfig {
}
问题是我下面给出的测试失败,该测试在@SpringBootTest中运行
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class HelloControllerIT {
@LocalServerPort
private int port;
private URL base;
@Autowired
private TestRestTemplate template;
@Before
public void setUp() throws Exception {
this.base = new URL("http://localhost:" + port + "/");
}
@Test
public void getHello() throws Exception {
ResponseEntity<String> response = template.getForEntity(base.toString(),
String.class);
assertThat(response.getBody(), equalTo("Greetings from Spring Boot!"));
}
}
我尝试过的方法:
方法1:
我不应该使用认证值进行测试,因此我不能使用 TestRestTemplate .withBasicAuth(用户名,密码)。
方法2: 属性文件中的security.basic.enabled = false。但这不起作用
如何仅对单元测试禁用安全性