Ejabberd - ejabberd_auth_external: ошибка: 103 Сбой программы внешней аутентификации при вызове 'check_password'

1
задан gujjubola 19 March 2019 в 08:21
поделиться

1 ответ

1) Ваша конфигурация об auth_method выглядит хорошо.

2) Вот скрипт на python, который я использовал и обновил для внешней аутентификации для ejabberd.

#!/usr/bin/python

import sys
from struct import *
import os

def openAuth(args):
    (user, server, password) = args
    # Implement your interactions with your service / database
    # Return True or False
    return True

def openIsuser(args):
    (user, server) = args
    # Implement your interactions with your service / database
    # Return True or False
    return True


def loop():
    switcher = {
        "auth": openAuth,
        "isuser": openIsuser,
        "setpass": lambda(none): True,
        "tryregister": lambda(none): False,
        "removeuser": lambda(none): False,
        "removeuser3": lambda(none): False,
    }

    data = from_ejabberd()
    to_ejabberd(switcher.get(data[0], lambda(none): False)(data[1:]))
    loop()

def from_ejabberd():
    input_length = sys.stdin.read(2)
    (size,) = unpack('>h', input_length)
    return sys.stdin.read(size).split(':')

def to_ejabberd(result):
    if result:
        sys.stdout.write('\x00\x02\x00\x01')
    else:
        sys.stdout.write('\x00\x02\x00\x00')
    sys.stdout.flush()

if __name__ == "__main__":
    try:
        loop()
    except error:
        pass

Я не создал связь с Ejabberd from_ejabberd() и to_ejabberd(), и, к сожалению, не могу найти источники.

0
ответ дан Francois Rotta 19 March 2019 в 08:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: