SASL включен Memcached LIST_MECH возвращает пустые поддерживаемые механизмы - PullRequest
0 голосов
/ 24 апреля 2019

Я пишу свою собственную реализацию 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 вернет список поддерживаемых механизмов аутентификации.

Может кто-нибудь здесь указать мне в каком-то направлениичто может заставить его работать?

1 Ответ

0 голосов
/ 06 июня 2019

Я понял, что это наш один.Cyrus-SASL не был правильно установлен в моей рабочей области.

Обычно вы можете установить sasl sudo yum install cyrus-sasl-devel, это работает для меня.

Иногда среда управления пакетами, с которой вы работаете, не позволяет вам использовать yum для установки зависимостей, но через какой-то определенный инструмент управления зависимостями.Тогда вы должны выяснить это оттуда.В моем случае я должен указать SASL_PATH в качестве переменной среды и указать, где мой инструмент управления зависимостями установил общую библиотеку SASL.

...