Как имитировать тег @PreAutorize в интеграционном тесте?

У меня есть следующий метод в Spring MVC и использование Spring Security:

@PreAuthorize("#phoneNumber == authentication.name")
@RequestMapping(value = "/{phoneNumber}/start", method = RequestMethod.POST)
public ModelAndView startUpgrading(@PathVariable("phoneNumber") String phoneNumber,
      ....
}

Мне удается имитировать аутентификацию примерно так:

public Authentication tryToAuthenticate(String accountName, String password) {
      UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(accountName, password);
    return authenticationManager.authenticate(token);
}

Но я не знаю, как настроить авторизацию с помощью @PreAutorize.

Как я могу правильно настроить свой тестовый контекст, чтобы мне не было отказано в доступе?

org.springframework.security.access.AccessDeniedException: Access is denied
at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:83)
at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:205)
9
задан Thomas Vervik 19 August 2012 в 21:22
поделиться