Найти в Дзене
letsCode

Spring Boot Security: добавляем регистрацию и авторизацию пользователей в приложение (простой сайт)

Добавляем 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://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html#jpa.query-methods.query-creation

Ссылка на плейлист:

https://www.youtube.com/watch?v=YCNiWmbnEQ8&list=PLU2ftbIeotGpAYRP9Iv2KLIwK36-o_qYk

Ссылка на канал:

https://www.youtube.com/channel/UC1g3kT0ZcSXt4_ZyJOshKJQ