Я использую siro как аутентификацию для моего приложения java 1.8. Мое создание пользователя будет sha256 и соль.Shiro соответствия учетных данных Создание шаблонов и паролей пользователей не соответствует
Shiro будет соответствовать только паролям, если они точны в базе данных, введенной. Например, если пароль базы данных был в открытом виде и был «паролем», и я ввел «пароль», это сработает.
Если я ввел «пароль», когда пароль зашифрован в базе данных, он не совпадает и не будет работать.
Как получить shiro для создания файла sha256 и соленых паролей из введенного пароля, чтобы пароли совпадали?
Мой код создания пользователя
EntityManagerFactory factory =
Persistence.createEntityManagerFactory("e");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
com.e.dto.User user = new com.e.dto.User();
DefaultPasswordService a = new DefaultPasswordService();
password = a.encryptPassword(password);
user.setUsername(username);
user.setPassword(password);
em.persist(user);
em.getTransaction().commit();
shiro.ini
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.authenticationQuery = SELECT password from user where username = ?
jdbcRealm.userRolesQuery = select role from userroles where userID = (select id FROM user WHERE username = ?)
ds = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
ds.serverName = localhost
ds.user = root
ds.password = password
ds.databaseName = myDatabase
jdbcRealm.dataSource= $ds
credentialsMatcher = org.apache.shiro.authc.credential.HashedCredentialsMatcher
credentialsMatcher.hashAlgorithmName = SHA-256
credentialsMatcher.storedCredentialsHexEncoded = true
credentialsMatcher.hashIterations = 10000
credentialsMatcher.hashSalted = true
Новые Пользователи пароль
$shiro1$SHA-256$500000$xRvz5dByhvAtFG7VHlCjHA==$xxakvEZdBF6cI+UmyR1OY098tAlscOKhpwQuT7THijw=