powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
17 сообщений из 17, страница 1 из 1
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217854
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как добавить пользователя, чтобы его пароль в табличке был зашифрован? И указать TomCat, что пароль зашифрован?
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217920
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не пробовал, но думаю сработает
надо использовать свой унаследованный от JDBCRealm класс
у Realm есть метод authenticate(String, String) - в него передается юзернейм и пассворд - его надо переопределить: захешить пассворд и вызвать super.authenticate с зашифрованным пассвордом.
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217931
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
добавлять, чтоб был зашифрован - при регистрации прогонять пассворд через MD5
в реалме, соответственно, тоже его юзать
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217949
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ого. А готовые решения есть? Неужели никто не сталкивался?
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217965
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pitbull terrierне пробовал, но думаю сработает
надо использовать свой унаследованный от JDBCRealm класс
у Realm есть метод authenticate(String, String) - в него передается юзернейм и пассворд - его надо переопределить: захешить пассворд и вызвать super.authenticate с зашифрованным пассвордом.
Работал я с этим год назад, но насколько помню там надо не изобретать велосипед а просто использовать нужные credentials
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217966
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да это и есть готовое
один метод переопределить всего
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33217990
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще круто, оказывается, все уже украдено до нас


If you want encrypted passwords (e.g. MD5), add a digest attribute:

Код: plaintext
1.
2.
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 debug="0" resourceName="UserDatabase" digest="MD5"/>



тынц
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218055
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pitbull terrierвообще круто, оказывается, все уже украдено до нас


If you want encrypted passwords (e.g. MD5), add a digest attribute:

Код: plaintext
1.
2.
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 debug="0" resourceName="UserDatabase" digest="MD5"/>



тынц

Что-то я не понял. Мне же JDBCRealm нужен. Его то как настроить? Может просто прописать digest="MD5"?
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218105
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218229
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для зкакрепления:
Атрибут digest="md5" в JDBCRealm говорит томкету, что пароли хранятся в зашифрованном виде. Хранятся хэши паролей.
Пароли хэшить нужно самому, т.е. в сервлете. Т.е. получаем строку password из запроса, хэшим её и делаем insert/update.

Всё правильно?

И ещё. Как сделать хэш строки password?
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218272
colka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SashichИ ещё. Как сделать хэш строки password?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 import  java.security.*;
...

 private   boolean  checkMD5(String password, String md5hash) {
   try  {
    MessageDigest md = MessageDigest.getInstance("MD5");
    md.update(password.getBytes());
     byte [] array = md.digest();

    StringBuffer sb =  new  StringBuffer();
     for  ( int  i =  0 , n = array.length; i < n; i++) {
       int  b = array[i] & 0xFF;
       if  (b < 0x10)
        sb.append('0');
      sb.append(Integer.toHexString(b));
    }
     return  sb.toString().equals(md5hash);
  }  catch  (NoSuchAlgorithmException e) {
     return  false;
  }
}
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218348
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashichДля зкакрепления:
Атрибут digest="md5" в JDBCRealm говорит томкету, что пароли хранятся в зашифрованном виде. Хранятся хэши паролей.
Пароли хэшить нужно самому, т.е. в сервлете. Т.е. получаем строку password из запроса, хэшим её и делаем insert/update.

Всё правильно?

И ещё. Как сделать хэш строки password?

правильно

хеш - как colka предложил
можно проще:
Код: plaintext
1.
2.
3.
4.
        String password = "password";
        MessageDigest md = MessageDigest.getInstance("MD5");
         byte [] bs = md.digest(password.getBytes());
        String encoded =  new  BigInteger(bs).toString( 16 );

только я не знаю, в какой системе счисления реалм ожидает увидеть сохрененные пароли :)
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218411
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо. Будем пробывать. Получится отпишусь.
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33218798
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут мимо проходил, не совсем понял, что надо, но насколько я знаю, именно в MySQL есть тип поля, специально для хранения паролей, т.е. мускуль сам все захеширует, т.е. ниче далать самому вообще не надо.
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33225622
markoa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessenЯ тут мимо проходил, не совсем понял, что надо, но насколько я знаю, именно в MySQL есть тип поля, специально для хранения паролей, т.е. мускуль сам все захеширует, т.е. ниче далать самому вообще не надо.

А можно поподробнее, что за тип поля такой? И как быть потом, если скажем база сменится на FireBird?
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33225681
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда хешить пароль ручками перед тем как положить в базу, как выше предлагалось
...
Рейтинг: 0 / 0
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
    #33230479
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лень - двигатель прогресса!

Вот так вот делается и работается ))
1. В JDBCRealm прописываем атрибут digest="md5"
2. Используем функцию общего назначения MySql md5('...')
Примерно вот так:
Код: plaintext
INSERT INTO users(user_name,user_pass) VALUES ('user',md5('password'))
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]