Spring Boot: reCaptcha, rest client, rememberMe и сохранение сессий в БД
Spring Boot Web Application (MVC): добавляем reCaptcha, поддержку rememberMe и хранения сессий в БД. Spring Boot упакован многими удобными механизмами, но поддержки капчи “из коробки” не сделано, что мы и исправим. Код из видео: https://github.com/drucoder/sweater/tree/rememberMeAndCaptcha Зависимость на Spring Session: https://gist.github.com/drucoder/e90e936cfdc638470b243e21556650db Настройки для Spring Session и reCaptcha: https://gist.github.com/drucoder/98076bf9d92196b75803992a597ae46e Для примера мы возьмём проект reCaptcha, т.к. он достаточно быстрый, надёжный и легко встраивается в любой проект. Первым делом нужно зарегистрировать аккаунт в проекте recaptcha и получить все необходимые ключи. Сайт проекта reCaptcha: https://www.google.com/recaptcha/admin#list https://developers.google.com/recaptcha/docs/verify Для проверки корректности пользовательского ввода нам необходимо делать rest запросы к серверу recaptcha. Для этого мы используем встроенный в Spring Boot rest клиент, кратко описанный в следующем гайде: https://spring.io/guides/gs/consuming-rest/ Для поддержки rememberMe достаточно в настройках Spring Security добавить вызов одного метода, имеющего то же самое имя: rememberMe. После чего пользователь будет автоматически авторизовываться в нашем приложении, даже если у него истекло время действия сессии на web сервере. Но если у нас имеется несколько серверов и после технических манипуляций, вызывающих перезагрузку сервера, у нас будет пропадать информация, необходимая для автоматической авторизации пользователя. Поэтому мы добавим в наше приложение поддержку Spring Session JDBC, что позволит хранить активные сессии пользовтелей в БД. Spring session JDBC: https://docs.spring.io/spring-session/docs/current/reference/html5/guides/boot-jdbc.html Сайт bootstrap: https://getbootstrap.com/docs/4.1/components/ Для проверки корректности работы приложения можно использовать сервис временых почтовых ящиков: https://temp-mail.org/ru/ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Твиттер: https://twitter.com/letsCodeDru ➡ Чат в Discord: https://discord.gg/xs6XxSx ➡ Группа Вконтакте: https://vk.com/letscodedru ➡ Канал в Telegram: https://t.me/letsCode_dru ➡ Чат в Telegram: https://t.me/joinchat/FeiP9xEhqHajfqhLr4z-Nw ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Поддержать проект: ➡ Patreon https://www.patreon.com/letscodedru ➡ Яндекс.Деньги https://money.yandex.ru/to/41001451675086 ➡ PayPal paypal.me/letscodedru ➡ Qiwi https://qiwi.me/letscode ➡ WebMoney/BitCoin https://funding.webmoney.ru/d/drucoder ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Ссылка на канал: https://www.youtube.com/channel/UC1g3kT0ZcSXt4_ZyJOshKJQ Ссылка на Яндекс.Дзен: https://zen.yandex.ru/media/id/5ac20956168a91ffeae449c5
Spring Boot Web Application (MVC): добавляем reCaptcha, поддержку rememberMe и хранения сессий в БД. Spring Boot упакован многими удобными механизмами, но поддержки капчи “из коробки” не сделано, что мы и исправим. Код из видео: https://github.com/drucoder/sweater/tree/rememberMeAndCaptcha Зависимость на Spring Session: https://gist.github.com/drucoder/e90e936cfdc638470b243e21556650db Настройки для Spring Session и reCaptcha: https://gist.github.com/drucoder/98076bf9d92196b75803992a597ae46e Для примера мы возьмём проект reCaptcha, т.к. он достаточно быстрый, надёжный и легко встраивается в любой проект. Первым делом нужно зарегистрировать аккаунт в проекте recaptcha и получить все необходимые ключи. Сайт проекта reCaptcha: https://www.google.com/recaptcha/admin#list https://developers.google.com/recaptcha/docs/verify Для проверки корректности пользовательского ввода нам необходимо делать rest запросы к серверу recaptcha. Для этого мы используем встроенный в Spring Boot rest клиент, кратко описанный в следующем гайде: https://spring.io/guides/gs/consuming-rest/ Для поддержки rememberMe достаточно в настройках Spring Security добавить вызов одного метода, имеющего то же самое имя: rememberMe. После чего пользователь будет автоматически авторизовываться в нашем приложении, даже если у него истекло время действия сессии на web сервере. Но если у нас имеется несколько серверов и после технических манипуляций, вызывающих перезагрузку сервера, у нас будет пропадать информация, необходимая для автоматической авторизации пользователя. Поэтому мы добавим в наше приложение поддержку Spring Session JDBC, что позволит хранить активные сессии пользовтелей в БД. Spring session JDBC: https://docs.spring.io/spring-session/docs/current/reference/html5/guides/boot-jdbc.html Сайт bootstrap: https://getbootstrap.com/docs/4.1/components/ Для проверки корректности работы приложения можно использовать сервис временых почтовых ящиков: https://temp-mail.org/ru/ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ➡ Твиттер: https://twitter.com/letsCodeDru ➡ Чат в Discord: https://discord.gg/xs6XxSx ➡ Группа Вконтакте: https://vk.com/letscodedru ➡ Канал в Telegram: https://t.me/letsCode_dru ➡ Чат в Telegram: https://t.me/joinchat/FeiP9xEhqHajfqhLr4z-Nw ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Поддержать проект: ➡ Patreon https://www.patreon.com/letscodedru ➡ Яндекс.Деньги https://money.yandex.ru/to/41001451675086 ➡ PayPal paypal.me/letscodedru ➡ Qiwi https://qiwi.me/letscode ➡ WebMoney/BitCoin https://funding.webmoney.ru/d/drucoder ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ Ссылка на канал: https://www.youtube.com/channel/UC1g3kT0ZcSXt4_ZyJOshKJQ Ссылка на Яндекс.Дзен: https://zen.yandex.ru/media/id/5ac20956168a91ffeae449c5
