моя конфигурация безопасности:
http.authorizeRequests().antMatchers("/ticket/create")
.access("hasAnyAuthority('MANAGER','EMPLOYEE')")
.and().authorizeRequests().antMatchers("/api/**","/ticket/*")
.access("isAuthenticated()")
.and().formLogin().loginPage("/login").failureUrl("/login?error")
.and().formLogin().defaultSuccessUrl("/ticket/all", true)
.usernameParameter("email")
.passwordParameter("password")
.and().csrf().disable();
Как видите, у меня / ticket / * требуется любая аутентификация, но прежде чем я получу более высокий приоритет с / ticket / create, у меня будет доступно только 2 роли.
На живом сервере все работает нормально, но когда я пытаюсь написать тест, возвращает 403, запрещенный, как будто у меня нет доступа. Мой тест:
@Test
public void testTicketCreate() throws Exception {
logger.info("Test: Create Ticket Page");
mockMvc.perform(get("/ticket/create").with(user("user").password("123").roles("MANAGER")))
.andExpect(status().isOk())
.andExpect(view().name("createTicket"));
}
, если я изменю тест с / ticket / create на любой другой URL-адрес, например / ticket / {id}, он пройдет с тем же пользователем.