Назад | Перейти на главную страницу

Сервер Ejabberd не объявляет внешнюю аутентификацию

У меня есть сервер ejabberd, настроенный для использования аутентификации с помощью внешнего сценария Java, однако, когда я пытаюсь войти на сервер с моего клиента Java с помощью Smack, я получаю следующее исключение SmackException:

No supported and enabled SASL Mechanism provided by server. Server announced 
mechanisms: [PLAIN, X-OAUTH2]. Registered SASL mechanisms with Smack: [SASL 
Mech: SCRAM-SHA-1-PLUS, Prio: 100, SASL Mech: SCRAM-SHA-1, Prio: 110, SASL 
Mech: DIGEST-MD5, Prio: 210, SASL Mech: PLAIN, Prio: 410, SASL Mech: X- 
OAUTH2, Prio: 410, SASL Mech: ANONYMOUS, Prio: 500, SASL Mech: EXTERNAL, 
Prio: 510]. Enabled SASL mechanisms for this connection: [EXTERNAL]. 
Blacklisted SASL mechanisms: [SCRAM-SHA-1-PLUS].

Предположительно, перечисленные механизмы «Зарегистрированные механизмы SASL с Smack:» и «Включенные механизмы SASL для этого соединения:» установлены на стороне клиента (оба из которых показывают ВНЕШНИЙ в приведенном выше исключении), но почему сервер объявляет только PLAIN и X- Механизмы OAUTH2? Есть ли способ заставить сервер объявить ВНЕШНИЙ? Например, я знаю, как отключить определенные механизмы в файле ejabberd.yml, например.

disable_sasl_mechanisms: ["PLAIN", "X-OAUTH2"]

но похоже, что для разрешающих механизмов нет эквивалента.

Вот что у меня есть в файле ejabberd.yml в разделе АУТЕНТИФИКАЦИЯ:

auth_method: external
extauth_program: "java -jar /opt/ejabberd/conf/auth.jar"
extauth_instances: 1
auth_use_cache: false

Есть мысли о том, что я делаю неправильно?