Я пытаюсь настроить небольшую службу Spring Data Rest, которая защищена Spring Security. В настоящее время у меня есть хранилище, аннотированное следующим образом, чтобы защитить его
@Repository
@PreAuthorize("hasAnyAuthority(@roleConfig.RWRole, @roleConfig.RORole)")
interface MyObjectRepository extends CrudRepository<MyObject, Integer> {
@PreAuthorize("hasAnyAuthority(@roleConfig.RWRole)")
@Override
<S extends MyObject> S save(S myObject)
@Override
@PreAuthorize("hasAnyAuthority(@roleConfig.RWRole)")
void delete(MyObject myObject)
}
Это обеспечивает безопасность, и я могу запускать тесты, пока я вызываю фактическую конечную точку / myObject. Однако, когда я настраиваю данные для тестов или проверяю результаты тестов, я получаю следующую ошибку:
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: An Authentication object was not found in the SecurityContext
Я предполагаю, что это связано с тем, что в хранилище установлена защита. Я пытаюсь выяснить, как настроить контекст безопасности для пользователя во время выполнения? Кроме того, следует отметить, что я тестирую с огурцом, который, по-видимому, плохо играет с аннотацией @WithMockUser
.