Добавляем Spring Security (пользователи и авторизация) в приложение. Когда в прложении работает несколько пользователей, им необходимо разделять свои данные. Для решения этой проблемы мы создаём пользовательские аккаунты и применяем для этого фреймворк Spring Security.
Ссылка на git репозиторий из видео:
https://github.com/drucoder/sweater/tree/SpringSecurity
Для начала нам необходимо найти нужный гайд на сайте Spring:
https://spring.io/guides/gs/securing-web/
Следуя руководству, нам необходимо сделать 2 страницы: публичную, роль которой у нас возьмет на себя страница greetings, и доступная после авторизации, роль которой возьмет на себя страница main. Нам потребуется только немного изменить мэппинг страниц и добавить ссылку с главной на приватную страницу.
Далее мы подключаем зависимость Spring Security, настраиваем модуль вэб-безопасности, и добавляем страницу авторизации.
По умолчанию, в Spring Security включен механизм CSRF и нам необходимо передавать со всеми формами ключ защиты. Для этого в файле настроек приложения application.properties нужно добавить строку настройки из блокнота:
https://gist.github.com/drucoder/ecb7b4c077c58fe68c300c23a342237b
В результате мы имеем простейший механизм авторизации в приложении. Проблема в том, что он использует фиксированные учетные записи, хранящиеся в оперативной памяти и все данные пользователей открыто лежать в исходном коде.
Для добавления возможности хранения учетных записей пользователей в БД, нам нужно изменить настройки Spring Security и создать доменный класс пользователя. Также, нам необходимо добавить страницу регистрации новых пользователей.
Руководство по mustache:
http://mustache.github.io/mustache.5.html
Руководство по JPA репозиториям:
Ссылка на плейлист:
https://www.youtube.com/watch?v=YCNiWmbnEQ8&list=PLU2ftbIeotGpAYRP9Iv2KLIwK36-o_qYk
Ссылка на канал: