TLDR: spring boot test找不到使用spring security定义的url端点
长篇故事:
我的SpringBoot应用程序使用Spring Security。
在其安全上下文中,它定义:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeRequests()
.antMatchers("/api/login").permitAll()
.and()
.formLogin()
.permitAll()
.loginProcessingUrl("/api/login")
.antMatchers(POST, "/api/**")
.hasAuthority(ADMIN)
}
}
我的测试代码初始化为SpringBoot测试:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MySpringBootApplication.class)
public class ContractVerifierBase {
@Autowired
private WebApplicationContext context;
@Before
public void setUp() throws Exception {
RestAssuredMockMvc.webAppContextSetup(context);
}
}
我的测试向/ api / login发送了POST请求,虽然我希望401
被rt,但会返回404
。
ResponseOptions response = given().spec(request.post("/api/login");
为什么找不到/api/login
?
答案 0 :(得分:0)
我认为你需要在基类基本认证数据中放心。 E.g。
Data1