2014-11-13 5 views
2

Я только что закончил писать arquillian тестирование с JBoss и документировать его здесь:Базовая аутентификация с arquillian тестирования в JBoss

http://czetsuya-tech.blogspot.com/2014/11/rest-testing-with-arquillian-in-jboss.html#.VGQkCvmUeSk

Но у меня есть проблема, наши остальные веб-службы обеспечиваются с помощью фильтра:

@WSSecured 
@Provider 
public class RESTSecurityInterceptor implements ContainerRequestFilter, 
     ExceptionMapper<Exception> { //... } 

Как вы добавляете токен имени пользователя/пароля при вызове простого ресурса arquillian rest?

@RunAsClient 
@Test 
public void testCreate(
@ArquillianResteasyResource("api/rest") CountryWs countryWs) { } 

ответ

1

Решение этой проблемы заключается в создании производителя, который будет производить пользователя по умолчанию и добавить этот класс к тестовому войны:

@Singleton 
@Startup 
public class DefaultUserProducer { 

    @Inject 
    private Logger log; 

    @Inject 
    private UserService userService; 

    private User currentUser; 

    @PostConstruct 
    public void init() { 
     try { 
      currentUser = userService.login("username", "password"); 
     } catch (LoginException e) { 
      log.error("Failed to login. {}", e.getMessage()); 
     } 
    } 

    @Produces 
    @RSUser 
    public User getCurrentUser() { 
     return currentUser; 
    } 

} 
Смежные вопросы