Шифрование паролей в Spring Security

Пока было время добавил шифрование паролей в один проект. Программист, который начинал его делать, почему-то не озаботился этим с самого начала.В результате все пароли хранились в открытом виде, что недопустимо. Пароли нужно всегда шифровать специальными алгоритмами вроде bcrypt, не стоит пользоваться алгоритмами, которые изначально для этого не предназначались, вроде MD5 или SHA.

Сначала нам нужно объявить бин bcryptEncoder  класса org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder в spring-security.xml  нашего проекта:

Затем в секции authentication-provider  добавить строчку <password-encoder ref="bcryptEncoder"/> вот так:

Если вы используете свою реализацию authentication-provider, то вам нужно будет вручную сравнивать пароль с помощью метода bcryptEncoder.matches(rawPassword, encryptedPassword) , что может выглядеть примерно так:

В тех местах кода, где вы задаёте новый пароль пользователю, нужно зашифровать новый пароль перед сохранением в базу данных с помощью метода bcryptEncoder.encode(newPassword).


Поделиться:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Один комментарий к “Шифрование паролей в Spring Security”

Добавить комментарий

Ваш e-mail не будет опубликован.

*