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


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
16.08.2005, 14:17
    #33218055
Sashich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
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
16.08.2005, 14:31
    #33218105
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
ага
...
Рейтинг: 0 / 0
16.08.2005, 15:05
    #33218229
Sashich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
Для зкакрепления:
Атрибут digest="md5" в JDBCRealm говорит томкету, что пароли хранятся в зашифрованном виде. Хранятся хэши паролей.
Пароли хэшить нужно самому, т.е. в сервлете. Т.е. получаем строку password из запроса, хэшим её и делаем insert/update.

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

И ещё. Как сделать хэш строки password?
...
Рейтинг: 0 / 0
16.08.2005, 15:16
    #33218272
colka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
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
16.08.2005, 15:35
    #33218348
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
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
16.08.2005, 15:51
    #33218411
Sashich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
Огромное спасибо. Будем пробывать. Получится отпишусь.
...
Рейтинг: 0 / 0
16.08.2005, 17:07
    #33218798
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
Я тут мимо проходил, не совсем понял, что надо, но насколько я знаю, именно в MySQL есть тип поля, специально для хранения паролей, т.е. мускуль сам все захеширует, т.е. ниче далать самому вообще не надо.
...
Рейтинг: 0 / 0
19.08.2005, 15:30
    #33225622
markoa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JDBCRealm.Хранение паролей пользователей в MySql для TomCat.
wessenЯ тут мимо проходил, не совсем понял, что надо, но насколько я знаю, именно в MySQL есть тип поля, специально для хранения паролей, т.е. мускуль сам все захеширует, т.е. ниче далать самому вообще не надо.

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

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


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