Как сделать Mysql-запрос такого типа? (exim)

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Как сделать Mysql-запрос такого типа? (exim)

Непрочитанное сообщение bobot » 2010-12-15 12:13:48

Это всё для авторизации smtp , пароль у меня хранится не в Md5, а криптуеца с помощью функции encrypt, вот и отсюда бока вылазят при авторизации

Идея такая у меня надо организовать Mysql запрос в Exim такого типа

encrypt('открытый пароль который вводит юзер' , 'пароль из базы')

Результат этой функции должен быть: открытый пароль который вводит юзер=пароль из базы , тогда происходит авторизация

Это всё делается для авторизации Thunderbird
Exim (в конце)
  • auth_plain:
    driver = plaintext
    public_name = PLAIN
    server_condition = ${lookup mysql{SELECT `password` FROM users WHERE username = '${quote_mysql:$2}'}}} -----вот как тут изменить запрос чтоб выполнялась функция encrypt
    server_set_id = $2

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как сделать Mysql-запрос такого типа? (exim)

Непрочитанное сообщение blade_007 » 2010-12-15 14:57:40

может SELECT 1 from table where username='$1' and password=encrypt('$2') или типа такого?
В любом случае надо тренироваться с mysql запросом.

Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

Re: Как сделать Mysql-запрос такого типа? (exim)

Непрочитанное сообщение bobot » 2010-12-15 15:25:35

blade_007 писал(а):может SELECT 1 from table where username='$1' and password=encrypt('$2') или типа такого?
В любом случае надо тренироваться с mysql запросом.
Работает разобрался....Теперь вы не подскажете как сделать првально CRAM-MD5

то в логах

Код: Выделить всё

2010-12-15 13:59:29 auth_cram_md5 authenticator failed for ([10.25.3.158]) [10.25.3.158]: 535 Incorrect authentication data (set_id=bobotol)
вот как у меня стоит

Код: Выделить всё

auth_cram_md5:
  driver = cram_md5
  public_name = CRAM-MD5
  server_secret = ${lookup mysql{SELECT password FROM users WHERE username = '${quote_mysql:$1}'}{$value}fail}
  server_set_id = $1


blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Как сделать Mysql-запрос такого типа? (exim)

Непрочитанное сообщение blade_007 » 2010-12-15 17:21:09

Тут поможет только отладка exim -bd -d+all и понимание принципов работа CRAM-MD5 аутентификации (пароль передается клиентом в виде хэша, exim для данного пользователя выбирает НЕХЭШИРОВАННЫЙ пароль, хэширует его и сравнивает с переданным клиентом). Как то так.