Не обязательно, там довольно широкая вариативность, обращаться может ведь как пользователь, так и какое-то сторонние клиентское приложение и для них по разному проходит аутентификация
Читать полностью…Аннотация просто говорит спрингу примерно следующее: «Эй, смотри, такого объекта у тебя в контексте нет, но нужно взять объект класса Authentication и вызвать на нет GetPrincipal и передать результат это в качестве аргумента». В моём же случае getPrincipal я вызываю сам внутри сервисного класса, но нужен мне не только Principal, а весь объект Authentication, потому что Principal может представлять собой совершенно разные классы и затратно каждый раз возиться с ним, лишний раз кастить и пытаться достать GrantedAuthority когда все и так уже есть в объекте Authentication
Читать полностью…Потому что мне нужно получить не Principal, а саму Authentication (Principal это часть Authentication, как и GrantedAuthority, например в случае JwtAuthenticationToken Principal это объект Jwt), а это означает что нужно просто извлечь Authentication из контекста и нет необходимости вызывать ещё и метод GetPrincipal
Читать полностью…Посмотрю, спасибо. Впрочем, в данном случае это не решит проблему, потому что нужный компонент есть в контексте безопасности, если достать его через SecurityContextHolder внутри контроллера. Он именно не передаётся в качестве аргумента при вызове метода контроллера с помощью MockMvc, а здесь все упирается в то, что я не совсем понимаю как MockMvc вызывает метод контроллера и как взаимодействует с контекстом приложения (по идее должен извлекать нужный компонент из контекста и передавать в качестве аргумента), но другой вопрос в том, что возможно MockMvc не взаимодействует с SecurityContext, а отвечает за это какой-то из фильтров или других компонентов SpringSecurity и без него просто некому достать нужный компонент. А вот детальной информации по механизмам внутренней работы SpringSecurity и MockMvc ни в документации ни в книгах особо нет. Контроллер делаю руками просто потому, что пока не разобрался в том, как правильно построить контекст для тестов
Читать полностью…Нет, я с этим поведением сталкивался с обычным редисом на тачке поднятом и небольшим приложением. Это кажись дефолтное поведение, что он не умеет переподключаться после обрыва такого
Читать полностью…если вопрос «можно ли сразу из http в памяти сделать архив?» то формально ответ «да», но на практике если файлов много то все равно потребуется промежуточное хранилище для того чтобы все файлы накопить (tmp или базейка)
можно кще посмотреть в http, обычно по нему летит уже зазипованное, может вам на лету ок это перехватывать. Но это хак
ну и традиционное:
какую задачу решаем? https://en.m.wikipedia.org/wiki/XY_problem
здарова леди и гайс, у меня вопрос возник на днях
каким образом будет возможно написать создание архиватора на сайте через джаву? я знаю про java.util.zip
, но есть ли возможность перенести это на сервак, чтобы человек просто загружал файлы, а они уже в архиве к нам переходили без того, чтобы сервак ресурсами ненужными забивался
Я разраб, инфрой то хоть и занимаюсь, но все же выстроить HA кластер со всей инфрой - не могу, да и не мое дело. Мне бы гарантии от себя дать, чтоб 100500 сервисов не рестартовать при факапах девопсов. А инфру делают. Ну падение кафки - смерть, а вот редиска мне хорошо бы если б не мешала
Гугл ничего дельного не говорит, сколько не бился. Хотя в памяти есть статейка на медиуме где переписывали стандартный коннекш менеджер с использованием circuit breaker. Но это было давно и возможно я вообще выдумываю
Не, там зависит от того, какой способ аутентификации, контракт определяет что Authentication.getPrincipal() возвращает Object. В моём случае это либо Jwt либо OidcUser (в зависимости от того, как проходит аутентификация, с помощью AccessToken’а переданного с запросом или с помощью переадресации пользователя к AuthorizationServer)
Читать полностью…Вообще эта аннотация инжектит по сути имплементацию UserDetails, чтобы руками так не делать. У тебя она кастомная?
Читать полностью…Ага ток не нашел я больше подобной шняги
И есть мысля что возможно это кеш был для circuit breaker , а не брейкер для кеша