SASL Enabled Memcached LIST_MECH возвращает пустые поддерживаемые механизмы

Я пишу свою собственную реализацию memcachedClient, в которой я хочу добавить аутентификацию. Я только начал с PLAIN auth, но потерпел неудачу. Короче говоря, команда LIST_MECH всегда возвращает пустой результат, если я продолжу и выполню команду PLAIN AUTH, она говорит:

mech:  ``PLAIN'' with 34 bytes of data
SASL (severity 2): Couldn't find mech PLAIN

Ниже моя конфигурация:

  • У меня кэш памяти 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 будет возвращать список поддерживаемых механизмов аутентификации.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
205
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Другие вопросы по теме