Spring Boot/Spring Test: невозможно загрузить пользователя с проверкой подлинности для проверки конечных точек

Невозможно загрузить MockUser в в SecurityContext для выполнения тестов конечной точки. Вопрос:

Как Spring Boot поддерживает проверку подлинности пользователя в SecurityContext? Я пытаюсь протестировать свои конечные точки REST, я пытался использовать @withmockuser, @withmockcustomuser, но обе эти аннотации не работают. Вместо ответа 200 OK я получаю 401 UnAuthenticated при попытке вызвать защищенные конечные точки.

Я следовал за шагами, описанными здесь. https://docs.spring.io/spring-security/site/docs/4.0.1.RELEASE/reference/htmlsingle/

Я ценю хороший рабочий пример для тестирования конечных точек.

@runwith(SpringJUnit4ClassRunner.class)
@springboottest(webEnvironment= SpringBootTest.WebEnvironment.MOCK)
@contextconfiguration(classes={SpringbootSecurityJwtApplication.class})
@autoconfiguremockmvc
@testexecutionlisteners(
mergeMode = MERGE_WITH_DEFAULTS
)
//////////////////////////////////
In my ControllerTests:

@Autowired
private WebApplicationContext context;
@Autowired
private MockMvc mockMvc;


@Before
public void setup() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(context)
            .alwaysDo(print())
            .apply(SecurityMockMvcConfigurers.springSecurity())
            .build();

}
@test
@withmockcurrentlyloggeduser(userId = "dsfdsf", accountId = "dsf", name = "dsf df", permissions = {"Edit", "Read"})
public void testCreatePreApproval() throws Exception
{
String appId = "MyApp1";
mockMvc.perform(post("/market/preapprovals", appId)
.accept(MediaType.ALL));//

}

0 ответов

Другие вопросы по тегам