Я тестирую свой контроллер с помощью Mockito. тест мой метод в контроллере:Роль аутентификации
@RequestMapping("/dispatcher")
public String disp(final HttpServletRequest request) {
if (request.isUserInRole("USER")) {
return "hello";
} else if (request.isUserInRole("ADMIN")) {
return "redirect:listUsers.htm";
}
throw new RuntimeException("This role is not registrated");
}
Мой метод испытания:
@Test
public void testDispatcher() throws Exception {
User user = userDao.findByLogin("log1");
TestingAuthenticationToken testingAuthenticationToken = new TestingAuthenticationToken(user, AuthorityUtils.createAuthorityList("USER"));
SecurityContextHolder.getContext().setAuthentication(testingAuthenticationToken);
System.out.println(testingAuthenticationToken);
mockMvc.perform(post("/dispatcher")
.principal(testingAuthenticationToken))
.andExpect(status().isOk());
}
Ошибка: org.spr[email protected]bf72b5bd: Руководитель: Пользователь [ID = 1, ПгвЬЫате = name1, lastName = surname1, login = log1, [email protected], password = psw1, birthDate = 1980-01-01 00: 00: 00.0, role = [id = 1, name = USER]]; Учетные данные: [ЗАЩИТА]; Authenticated: false; Детали: null; Не предоставлены никакие полномочия
org.springframework.web.util.NestedServletException: обработка запроса не удалась; Вложенное исключение - это java.lang.RuntimeException: эта роль не зарегистрирована
Как установить роль для метода request.isUserInRole(); или, может быть, есть другое решение моей проблему