Здрасьте,
пытаюсь понять spring security. Все примеры какие то неподходящие под мою задачу или я что то не понимаю. Очень много всего и все варианты решения слишком разные.
У меня приходят запросы, в которых посажены две куки - account и token. Account это по сути имя пользователя, а token собственно кастомный токен, который надо периодически проверять, что он валидный.
Я создал класс AppPrincipal, который реализует интерфейс UserDetails.
В кастомном фильтре я извлекаю вышеуказанные куки и создаю объект AppPrincipal.
Но дальше не пойму как его использовать. Насколько я понимаю, мне надо как то principal сунуть в SecurityContextHolder.
Если я правильно все понял, надо вызвать
SecurityContextHolder.getContext().setAuthentication()
Но оно требует класс с интерфейсом Authentification. Надо мне какие то готовые использовать и есть ли подходящие, или надо самому создать свой класс реализующий интерфейс Authentification?
Как потом в ендпоинтах проверять? Просто вызвать SecurityContextHolder.getContext().isAuthentificated() и в случае чего делать отлуп или как то можно аннотации использовать или центральной конфигурацией? У меня webflux вида
@RequestMapping(value = "/stats/{account}", method = RequestMethod.GET)
public Mono<List<PersonalStatsRecord>> getPersonalStatsAccount(@PathVariable String account) {
return Mono.just(sessionRepository.getStatsForAccount(account));
}
Буду очень благодарен, если подскажите, верной дорогой ли я иду или "все ...ня Миша" и надо все переделывать?
Спасибо