Веб-разработка на Java. Spring Security. Часть 2.

Автор Alla Bessonova
Веб-разработка на Java. Spring Security. Часть 2.

Всем привет на этом уроке продолжаем изучать spring-security в прошлый раз мы настроились свою базу Security.

И аутентификацию после этого я добавил ещё вот здесь дефолтный чтобы у нас был с домашней страничке нашего сайта интеллект настройка пользователей. Да ты просто мы сходя по слышу попадали на страничку юзеров. А если мы не на страницу логина и также я создал таблицу пользователей в базе данных потому, что пароль до этого мы хранили в сыром виде или в исходном то есть вот так его вводил пользователь.

А теперь мы будем шифровать его и соответственно будет занимать больше места чем 20 символов которые были до этого соответствия удалил и создал заново вот этим скриптом да то есть если вы сам этого, а он тоже — это нужно повторить чтобы всё работало и так мы займемся такие боли косметическими наверное вещами после Security которые мы опускали в прошлый раз во-первых у нас есть страничка и вот если мы вводим какие-нибудь имя пользователя и пароль пытаемся зайти и.

Если аптеки в котором мы не проходим то есть нет пользователь с таким именем и паролем то. Мы возвращаемся на эту же страничку возле видно, что в адресной строке появляется слово Error, но при этом на страничке у нас нет никого сообщения которые нам говорила о том, что мы не прошли аутентификацию. Да ты, что там по нашим данным не подходит и так далее. Давайте директор соответствующие ошибка и будем отображать её на страничку потому, что иначе пользоваться любой сложно понять в чём проблема. И так — это у нас страничка логина. То есть — это iOS Controller. У нас есть и. Давайте сюда добавим options request param Error request param с названием Error и он необязательный то есть река это. Фолз — это будет бульйон и нужно ещё модель чтобы передавать ошибку если она есть в армию соответственно здесь мы проверяем если ошибка есть. То есть если булина True и false Error. То есть когда мы будем передавать ошибку будет выдавать ошибку значение True соответственно если значению трехзначными передач и нам нужна модель добавить атрибут Error и передать эту ошибку вернее нету ошибка например написать. Ну хотя давай просто напишем что. Ошибка есть и ошибка текст ошибки мы будем сдавать на самой странички и так если есть ошибка мои добавляемых модель атрибут Error и возвращаем страничку регистрация то есть авторизация и соответственно здесь внизу этой пишем макрос если есть ошибка то был отображать, что невалидный входные данные или Bad credentials. О'кей пока будем или соберём проверим, что — это работает, а ну конечно — это не будет работать потому, что нам нужно добавить в Security config информацию о том какой у нас рлрл происходит редирект если аутентификация проход неудачно то есть вот здесь вот в наших настройках мы добавляем есть такой параметр failure Girl. Да — это ural на которой Spring Boot redirect пить при неудачной авторизации. Это логин с параметром True. Вот теперь мы играли собираем ещё раз я должен работать. Это первый пункт который у нас работал не очень хорошо. Давай тебя проверим, что теперь работает нормально. Мы заходим на страничку логина будем какие-то данные. То есть если теперь у нас невалидная креденшиалс данном об этом хотя бы пишет. Тоже неплохо. О'кей Теперь давайте сделаем так чтобы пароль пользователя который вот мы допустим есть вводим пароль какой-то и мы будем сохранить в сыром виде не восходом мы будем его шифровать и сохранять в зашифрованном виде мы внутри даже разработчики в базе данных не смогут взять там пользовательские пароли например. по сути. Мы у нас нигде не будут хранятся пароли пользователей в чистом виде только зашифрованным и когда будет проходить аутентификацию. ТО будет его пароль который он передал. Он будет шифроваться и сравнивать с тем который лежит в вазе если они будут равны то значит стратификация проходит успешно и так, что значит нам нужно зайти на страничку. Риге или создание нового пользователя посмотреть где у нас здесь вот здесь вот у нас тайно придёт. А и соответственно нам нужна вот User Service где идет добавление пользователя нам здесь нужно добавить шифрование пароля для шифрования будем использовать сыр или бикрипт паспортом года давать свой добавил. То есть — это просто какой-то класс который отвечает за шифрование bien Public password encoder возьмём decrypt Password encoder. Но — это одна из реализации возможно. То есть фактически можно и на друга использовать алгоритм, но возьмём с ним добавили. Теперь мы можем его в нашем сервисе посмотреть. Годер и здесь соответственно юзеру задаем пароль паспорт encoder пин-код User Get password. мы берём пароль зашифрованного издаем новые зашифрованный пароль пользователя и сохраняем пользователя после этого теперь после того как мы сохранили пользователя. Пусть уже зашифрованный пароль, но в таком случае этот пользователь потом должен пройти аутентификацию. Вот соответственно нужно поменять то сейчас он этот ни в какую организацию приходить не будет то есть можно проверить, а потому, что логика аутентификация у нас задано всё провайдеры. Ивантеевка пойду сейчас берётся прополис формы которые пользуются передал и сравнивается с паролем в базе и сейчас они не будут совпадать потому, что один исходный, а другой зашифрованы. Давайте ремонта то есть вот пользователь какой-нибудь издаем ему пароль. Ага У нас ошибка да то есть у нас у нас есть кабинет validations который стоит на юзера и она говорит, что здесь максимум 20 символов пароля и — это валидация происходит не только при сабмит формы. То есть она происходит не только вот возле есть. Да она происходит ещё перед сохранением пользователи сущность в базу. А так как пароль зашифрованного длиннее чем 20 стоит облигация нам уже не катит. Давайте оставим. Минимум семь и сообщение напишем минимум.

0 комментариев
0

Читайте также