Как обойти аннотацию Spring @PreAuthorize на RestController для тестов? - PullRequest
0 голосов
/ 11 июня 2018

Как я могу создать обход @ Preauthorize , чтобы я мог проводить локальные тесты без вызова фактического, потому что аннотация будет загружена до загрузки класса?

@RestController
@RequestMapping("/test")
public class ResourceController {
    @RequestMapping(method = GET)
    @PreAuthorize
    @ResponseBody
    public String message(){ return "Hello World"; }

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете иметь тестовый профиль в своем коде, который вы затем активируете при запуске тестов с кодом.Затем вы можете использовать предопределенный пользователь и пароль в своих тестах.

@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;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...