Я пишу свою собственную реализацию memcachedClient, в которой я хочу добавить аутентификацию.Я только начал с аутентификации PLAIN, но потерпел неудачу.Короче говоря, команда LIST_MECH всегда возвращает пустой результат, если я иду вперед и запускаю команду PLAIN AUTH, она говорит:
mech: ``PLAIN'' with 34 bytes of data
SASL (severity 2): Couldn't find mech PLAIN
Ниже приведена моя конфигурация:
- IЯ нахожусь на memcache 1.5.12
- Мой memcached.conf
% cat memcached.conf
mech_list: plain
log_level: 5
sasldb_path: /tmp/memcached-sasl-db
- Мой / tmp / memcached-sasl-db
% cat memcached-sasl-db
myname:mypass
export MEMCACHED_SASL_PWDB=/tmp/memcached-sasl-db
export SASL_CONF_PATH=`pwd`/memcached.conf
После запуска:
./memcached -m 32 -S -B binary -vvvv
Reading configuration from: </MemcachedBuildDirection/build/bin/>
Initialized SASL.
LIST_MECH показывает:
<29 Read binary protocol data:
<29 0x80 0x20 0x00 0x00
<29 0x00 0x00 0x00 0x00
<29 0x00 0x00 0x00 0x00
<29 0x00 0x00 0x00 0x01
<29 0x00 0x00 0x00 0x00
<29 0x00 0x00 0x00 0x00
authenticated() in cmd 0x20 is true
>29 Writing bin response:
>29 0x81 0x20 0x00 0x00
>29 0x00 0x00 0x00 0x00
>29 0x00 0x00 0x00 0x00
>29 0x00 0x00 0x00 0x01
>29 0x00 0x00 0x00 0x00
>29 0x00 0x00 0x00 0x00
Это показывает, чтоответ имеет общую длину ноль.Таким образом, я читаю пустой список из вывода.
И команда AUTH:
<29 Read binary protocol data:
<29 0x80 0x21 0x00 0x05
<29 0x00 0x00 0x00 0x00
<29 0x00 0x00 0x00 0x27
<29 0x00 0x00 0x00 0x01
<29 0x00 0x00 0x00 0x00
<29 0x00 0x00 0x00 0x00
authenticated() in cmd 0x21 is true
29: going from conn_parse_cmd to conn_nread
mech: ``PLAIN'' with 34 bytes of data
SASL (severity 2): Couldn't find mech PLAIN
sasl result code: -4
Unknown sasl response: -4
>29 Writing an error: Auth failure.
>29 Writing bin response:
>29 0x81 0x21 0x00 0x00
>29 0x00 0x00 0x00 0x20
>29 0x00 0x00 0x00 0x0d
>29 0x00 0x00 0x00 0x01
>29 0x00 0x00 0x00 0x00
>29 0x00 0x00 0x00 0x00
Я ожидаю, что LIST_MECH вернет список поддерживаемых механизмов аутентификации.
Может кто-нибудь здесь указать мне в каком-то направлениичто может заставить его работать?