我正在使用RestAssured测试API。
我调用的方法正在使用下一个注释:
@PreAuthorize("hasAnyRole('ROLE1', 'ROLE2', 'ROLE3')")
我的测试类包含用于测试的有效配置文件
对于测试配置,我们使用.yaml文件。
是否可以在.yaml文件中放置一些内容,以便我们在运行测试时不需要授权?
或者还有其他办法让我在运行测试时没有激活PreAuthorize吗?
答案 0 :(得分:1)
您的代码中可能有一个test
个人资料,然后在针对代码运行测试时激活该个人资料。然后,您可以在测试中使用预定义的用户和密码。
@Configuration
public class TestConfig {
@EnableWebSecurity
@Profile("test")
class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public UserDetailsService userDetailsService() {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withUsername("user").password("password").roles("ROLE1", "ROLE2", "ROLE3").build());
return manager;
}
}
}