Хабр Курсы для бэкендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Ну сессии умерли. Это ж не скейлится. Смотрите на jwt
Посмотрите в сторону спрингового ProblemDetail, зачем создавать какие-то кастомные ApiResponse, когда уже все сделано за вас?
Спасибо за статью, очень подробно, я бы добавила про области применения - когда сессионную аутентификацию стоит выбирать, а когда лучше JWT/Keycloak.
Spring Security: аутентификация через REST