powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Mock @AuthenticationPrincipal from SpringSecurity?
3 сообщений из 3, страница 1 из 1
Mock @AuthenticationPrincipal from SpringSecurity?
    #39636299
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, решений есть много, но всё что перепробовал - не работает.
Может кто поделиться работающим вариантом.
Структура стандартная. Логинимся, получаем jwt-token, идём с этим токеном и получаем данные. Теперь нужно мокнуть репозиторий и пользователя в SecurityContext так, чтоб всё чётко сработало. Вот как пытался последний вариант проделать, getAuthentification() is null

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
@SpringBootTest(
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
    classes = BackendApplication.class)
@TestExecutionListeners({
    DependencyInjectionTestExecutionListener.class,
    DirtiesContextTestExecutionListener.class,
    WithSecurityContextTestExecutionListener.class})
public class OfferControllerTest extends AbstractTestNGSpringContextTests
{
    private MockMvc mockMvc;

    @Autowired
    private WebApplicationContext context;

    @Mock
    private UserRepository гserRepository;

    @BeforeClass
    public void setUp()
    {
        mockMvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity())
            .build();
    }

    @Test
    public void setOffers() throws Exception
    {
        ObjectMapper objectMapper = new ObjectMapper();
        OfferDTO offerDTO = new OfferDTO().setDescription("description");

        Account account = new Account();
        account.setK(new K());
        User user = new User();
        user.setAccount(account);

        when(userRepository.findByEmailEquals(any())).thenReturn(Optional.of(user));

        mockMvc.perform(post("/offers")
            .accept(MediaType.APPLICATION_JSON)
            .contentType(MediaType.APPLICATION_JSON)
            .content(objectMapper.writeValueAsString(ImmutableList.of(offerDTO))))
            .andExpect(status().isOk());
    }
}



Ну и соответственно строчка из-за которой "цыр-бор". user это пользователь из SecurityContext который приходит в метод с аннотацией @AuthenticationPrincipal
Код: java
1.
        K ref = userRepository.findByEmailEquals(user.getUsername()).get().getAccount().getK();



Спасибо!
...
Рейтинг: 0 / 0
Mock @AuthenticationPrincipal from SpringSecurity?
    #39636301
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_webdev_,
getAuthentification() is null - в смысле, что не работает, получаю Nullpointer когда тяну user.getUsername()
...
Рейтинг: 0 / 0
Mock @AuthenticationPrincipal from SpringSecurity?
    #39636752
vbareisha88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@MockBean - над userRepository.
И на всякий случай - MockitoAnnotations.initMocks(this);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Mock @AuthenticationPrincipal from SpringSecurity?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]