Zammad: Code d'état 500 LDAP / Exchange UTF-8

Créé le 24 juil. 2018  ·  59Commentaires  ·  Source: zammad/zammad

Salut, merci d'avoir signalé un problème. Veuillez vous assurer des éléments suivants avant de créer un problème - merci! 🤓 Depuis le 15 novembre, nous traitons toutes les demandes, sauf les vrais bugs, sur notre forum communautaire. Explication complète: https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 Veuillez poster: - Demandes de fonctionnalités - Questions de développement - Questions techniques sur le tableau -> https: / /community.zammad.org! Si vous pensez avoir rencontré un bogue, veuillez continuer: - Recherchez les problèmes existants et le CHANGELOG.md pour votre problème - il y a peut-être déjà une solution - Assurez-vous d'utiliser la dernière version de Zammad si possible - Ajoutez le `log / production. log` de votre système. Attention: assurez-vous qu'aucune donnée confidentielle ne s'y trouve! - Veuillez écrire le problème en anglais - Ne supprimez pas le modèle - sinon nous fermerons le problème sans autres commentaires - Posez des questions sur la configuration et l'utilisation de Zammad sur notre liste de diffusion. Voir: https://zammad.org/participate Remarque: Nous faisons toujours de notre mieux. Malheureusement, il y a parfois trop de demandes et nous ne pouvons pas tout gérer en même temps. Si vous souhaitez hiérarchiser / escalader votre problème, vous pouvez le faire au moyen d'un contrat de support (voir https://zammad.com/pricing#selfhosted). * Le bloc de texte supérieur sera automatiquement supprimé lorsque vous soumettez votre problème *

Infos:

  • Version Zammad utilisée
  • Méthode d'installation (source, package, ..): DEP
  • Système d'exploitation: ubuntu 18.04
  • Base de données + version: psql (PostgreSQL) 10.4 (Ubuntu 10.4-0ubuntu0.18.04)
  • Version d' Elasticsearch
  • Navigateur + version:
    Chrome

Comportement prévisible:

Trame LDPA affichée (dans le menu de configuration Système -> Intégration -> LDAP) sans erreur
*

Comportement réel:

Le cadre LDAP n'est pas affiché. Le cadre reste vide avec un message d'erreur
Aussi API et surveillance
2018-07-24 08_35_07-microsoft edge
*
StatusCode 500
{"error": "\" \ xC5 \ "de ASCII-8BIT à UTF-8"}

Étapes pour reproduire le comportement:

Configurez uniquement LDAP.

*
Ma configuration:
adaptateur: postgresql
base de données: zammad
piscine: 50
délai d'expiration: 5000
encodage: utf8
nom d'utilisateur: zammad

log / production.log:

/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `block in tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:26:in `tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/request_id.rb:25:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/method_override.rb:22:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/runtime.rb:22:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/executor.rb:12:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/static.rb:125:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/sendfile.rb:111:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/engine.rb:522:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/configuration.rb:225:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:624:in `handle_request'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:438:in `process_client'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:302:in `block in run'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/thread_pool.rb:120:in `block in spawn_thread'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
I, [2018-07-24T09:47:49.326279 #12796]  INFO -- : Completed 500 Internal Server Error in 1121ms (Views: 0.3ms | ActiveRecord: 43.9ms)
I, [2018-07-24T09:47:50.981956 #12794]  INFO -- : 2018-07-24T09:47:50+0200: [Worker(host:support pid:12794)] Job Observer::UserDeviceLogJob (id=3437) RUNNING
I, [2018-07-24T09:47:51.081012 #12794]  INFO -- : 2018-07-24T09:47:51+0200: [Worker(host:support pid:12794)] Job Observer::UserDeviceLogJob (id=3437) COMPLETED after 0.0988

Oui, je suis sûr que c'est un bogue et aucune demande de fonctionnalité ou une question générale.

LDAP bug import

Commentaire le plus utile

Salut,
Juste pour informer que j'ai eu à nouveau le même problème, mais l'ancienne configuration existait toujours. Veuillez donc procéder comme suit si vous rencontrez à nouveau ce problème.

Supprimez l'ancienne configuration avec la commande suivante:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • arrêter le service zammad

  • mettre à jour zammad

  • redémarrez le service zammad et essayez de reconfigurer la connexion LDAP

Après cela, je n'ai rencontré aucun problème.

Salutations

Tous les 59 commentaires

Salut @ e311 - pourriez-vous aussi fournir la partie supérieure du journal? C'est là que les informations requises sont imprimées et qui sont actuellement manquantes. De plus: pourriez-vous décrire les étapes que vous avez effectuées pour résoudre le problème? Ce n'est actuellement pas clair. Merci!

Salut,
je vais essayer.
J'ouvre le LDAP (dans admin -> système -> Integarion). Je lance la configuration Tout va bien.
Mot de passe de l'utilisateur du DN du domaine.
3 ldap

J'ai utilisé le mappage standard.
4

Et l'écran de configuration LDAP a l'air bien.
6
Je presse en sécurité. Et je reçois un message d'erreur.
7

Après avoir rechargé la page, le cadre est vide.
2018-07-24 08_35_07-microsoft edge

et voici le fichier journal complet:

log.txt

Salut @ e311 - merci pour la rédaction complète! La ligne intéressante dans le journal est celle-ci:

E, [2018-07-24T11:39:30.491795 #973] ERROR -- : "\xC5" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/core_ext/object/json.rb:36:in `encode'
...
/opt/zammad/app/controllers/application_controller/renders_models.rb:70:in `model_update_render_item'
/opt/zammad/app/controllers/application_controller/renders_models.rb:66:in `model_update_render'
/opt/zammad/app/controllers/settings_controller.rb:31:in `update'

Ce qui dit essentiellement qu'il y a des caractères spécialement encodés dans les paramètres LDAP qui seront / seront stockés. Je peux aussi les voir dans le journal.

Je pense que c'est suffisant pour reproduire le problème. Merci pour votre soutien jusqu'à présent. Nous allons résoudre le problème.

Veuillez noter que l'intégration d'Exchange est également affectée: # 2152

Salut @ e311 ,

Nous avons creusé ce problème et sommes convaincus que nous comprenons ce qui se passe, mais nous devons à nouveau demander votre aide pour en être complètement certains.

Étape 1: Confirmez la cause du bogue

Essayez la ligne suivante dans votre terminal, dans le répertoire Zammad. Si nos soupçons sont corrects, cela devrait échouer (_i.e., _ Déclencher une erreur et afficher une trace):

$ rails r "puts Setting.get('ldap_config').to_json"

Si vous avez vu un retraçage pour le même Encoding::UndefinedConversionError que vous avez obtenu dans le rapport de bogue initial, alors super - à l'étape 2! Sinon, veuillez confirmer que vous n'avez pas réinitialisé votre base de données ou modifié votre configuration LDAP depuis la dernière fois que ce bogue s'est produit. Si vous n'obtenez toujours pas d'erreur, veuillez nous en informer afin que nous puissions continuer à enquêter.

Étape 2: Envoyez-nous une dernière information cruciale

Exécutez la commande suivante dans votre terminal:

$ rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

Ensuite, envoyez le fichier résultant ( zammad_2140_debug_output.txt ) à [email protected]. N'oubliez pas de mentionner que le message est pour Thorsten Eckel et pour le bogue # 2140.

Avec cela, nous devrions être en mesure de faire fonctionner un correctif tout de suite.

Merci encore pour votre aide!

C'est la première massege

serveradmin @ support : / opt / zammad $ rails r "met Setting.get ('ldap_config'). to_json"
Traceback (dernier appel le plus récent):
4: depuis le bac / les rails: 3 : dans <main>'         3: from bin/rails:3:in require_relative '
2: depuis /opt/zammad/config/boot.rb:3:in <top (required)>'         1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in require '
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require ': impossible de charger un tel fichier - bundler / setup (LoadError)

Gesendet: Lundi, 06. août 2018 à 11:53 Uhr
Von: "Ryan Lue" [email protected]
An: zammad / zammad [email protected]
Cc: e311 [email protected] , Mention [email protected]
Betreff: Re: [zammad / zammad] LDAP / Exchange UTF-8 Status Code 500 (# 2140)

Salut @ e311 ,

Nous avons creusé ce problème et sommes convaincus que nous comprenons ce qui se passe, mais nous devons à nouveau demander votre aide pour en être complètement certains.

Étape 1: Confirmez la cause du bogue

Essayez la ligne suivante dans votre terminal, dans le répertoire Zammad. Si nos soupçons sont corrects, cela devrait échouer (c'est-à-dire générer une erreur et afficher une trace):

$ rails r "met Setting.get ('ldap_config'). to_json"

Si vous avez vu un traceback pour le même Encoding :: UndefinedConversionError que vous avez obtenu dans le rapport de bogue initial, alors super - à l'étape 2! Sinon, veuillez confirmer que vous n'avez pas réinitialisé votre base de données ou modifié votre configuration LDAP depuis la dernière fois que ce bogue s'est produit. Si vous n'obtenez toujours pas d'erreur, veuillez nous en informer afin que nous puissions continuer à enquêter.

Étape 2: Envoyez-nous une dernière information cruciale

Exécutez la commande suivante dans votre terminal:

$ rails r "pp Setting.get ('ldap_config'). except ('bind_pw')"> zammad_2140_debug_output.txt

Ensuite, envoyez le fichier résultant (zammad_2140_debug_output.txt) à [email protected]. N'oubliez pas de mentionner que le message est pour Thorsten Eckel et pour le bogue # 2140.

Avec cela, nous devrions être en mesure de faire fonctionner un correctif tout de suite.

Merci encore pour votre aide!

-
Vous recevez cela parce que vous avez été mentionné.
Répondez directement à cet e-mail, affichez-le sur GitHub ou désactivez le fil de discussion.

rails r "pp Setting.get ('ldap_config'). except ('bind_pw')"> zammad_2140_debug_output.txt
produire un fichier emty (je ne peux pas télécharger car c'est emty)

befehl
output

Salut @ e311 - Veuillez essayer ce qui suit:

zammad run rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

OU ALORS:

bundle exec rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

mais devrait être la première ligne.

J'essaye la première commande:
Identique à "Serveradmin" avec sudo ou sans sudo
image
Bundel mon être pas installé?
image

@ e311 , c'est très étrange. Ignorons la deuxième commande ( bundle exec rails ... ) pour le moment - je ne pense pas que ce soit le bon chemin ici. Pourriez-vous peut-être essayer de sauvegarder le fichier journal et en créer un nouveau vide?

/opt/zammad:# gzip production.log
/opt/zammad:# mv production.log.gz production.log.15.gz
/opt/zammad:# touch production.log
/opt/zammad:# chown zammad.zammad production.log
/opt/zammad:# chmod 0644 production.log
/opt/zammad:# zammad run rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

Merci pour toute votre aide pour résoudre ce problème avec nous.

@rlue nous avons fait les commandes hier avec @ e311 .

Le journal a des droits d'accès parfaitement fins, j'ai vérifié deux fois cela.
Je vous enverrai la sortie ldap-config dans le plus bref délai, au cas où vous ne l'auriez pas encore.

Oups, vous m'avez totalement envoyé le journal en début de journée hier. Je ne sais pas comment je l'ai manqué!

@ e311 , je n'ai pas vu ce que je m'attendais à voir dans votre sortie de débogage. Maintenant que @MrGeneration a pu vous aider à faire fonctionner vos commandes zammad run rails r ... , pouvez-vous réessayer ce qui suit et me dire si cela soulève le Encoding::UndefinedConversionError auquel ce problème est destiné?

$ rails r "puts Setting.get('ldap_config').to_json"

Je reçois le message "Votre version de Ruby est 2.5.1, mais votre Gemfile a spécifié 2.4.4"
Je suis désolé que ça ne marchera pas (j'essaye toutes les pensées que Google me dit)

Votre Ruby et votre version d'Elasticsearch ne sont pas compatibles avec Zammad.
Utilisez Ruby 2.4.4 et Elasticsearch jusqu'à 5.6.

@ e311 désolé en fait, totalement de ma faute. J'ai oublié d'ajouter à nouveau zammad r . -_- '

je voulais dire

$ zammad run rails r "puts Setting.get('ldap_config').to_json"

Voici le message:

Neues Textdokument (3) .txt

Donc, la sortie de la dernière commande était exactement ce à quoi je m'attendais. Pour résumer, il semble que certains des attributs utilisateur de votre serveur LDAP aient des valeurs de données binaires. Zammad essaie de les convertir en chaînes, puis de les transmettre du backend au frontend, mais comme ce ne sont pas réellement des chaînes, nous nous retrouvons face à des problèmes d'encodage / conversion.

Bien sûr, comme je ne peux pas me connecter à votre serveur LDAP, je ne peux pas être sûr à 100% qu'un correctif fonctionnera tant que vous ne l'aurez pas essayé pour nous. Alors, j'aimerais demander votre aide sur deux autres points:

  1. La dernière fois que je vous ai demandé d'exécuter des commandes et de nous envoyer le résultat par e-mail (mercredi dernier), les commandes que je vous ai données n'étaient pas tout à fait correctes et ne nous ont pas donné exactement les informations dont nous avions besoin. Voici un script qui devrait bien faire les choses cette fois (à télécharger ici ):

    # Place this script in your Zammad directory and run it with
    #
    #     $ zammad run rails r 2140_bug_report.rb
    #
    # It should create a file named 2140_bug_report.txt.
    # Please send this file to [email protected], and mention that it's for Ryan.
    
    class Hash
     def deep_values
       values.map { |v| v.try(:deep_values) || v }.flatten
     end
    end
    
    string_values = Setting.get('ldap_config').except('bind_pw').deep_values.select { |v| v.is_a?(String) }
    
    File.binwrite('2140_bug_report.txt', Marshal.dump(string_values))
    

    Désolé de vous le faire faire deux fois.

  2. J'ai écrit un correctif qui, je pense, devrait résoudre le problème. Fondamentalement, chaque fois qu'il rencontre une valeur de données binaire dans la synchronisation LDAP, il l'ignore au lieu d'essayer de l'enregistrer sous forme de chaîne.

    Je voudrais confirmer que le correctif fonctionne sur votre ordinateur avant de fusionner ces modifications dans la base de code principale. Voici une version corrigée d' un

    Téléchargez-le et copiez-le dans /opt/zammad/lib/ldap/user.rb , puis redémarrez Zammad (important!) Et exécutez à nouveau l'assistant de configuration LDAP. Puisque vous avez déjà une configuration LDAP existante, cela signifie que vous devrez cliquer sur le bouton "Modifier" en bas du panneau:

    screenshot_20180814_201507

Si l'étape 2 ne résout deux fichiers.

Merci encore pour votre aide et votre patience!

Je redémarre le système de trous, mais je ne peux pas appuyer sur le bouton de changement.

image

avant le patch
2140_bug_report (Étape 1) .txt

après le patch
2140_bug_report (Étape 2) .txt

J'essaye également une nouvelle configuration LDAP. Je restaure le système avant la conf LDAP. mais c'est le même résultat.

J'ai vérifié le niveau fonctionnel du domaine. C'est en 2003 que cela peut-il être le problème

Je redémarre le système de trous, mais je ne peux pas appuyer sur le bouton de changement.

Merci d'avoir clarifié cela. Je n'avais pas compris l'ampleur du problème, à l'origine.

J'essaye également une nouvelle configuration LDAP. Je restaure le système avant la conf LDAP. mais c'est le même résultat.

Voulez-vous dire que vous avez restauré le système avant la configuration LDAP, que vous avez exécuté avec succès tout l'assistant et que vous avez toujours rencontré le même problème? Ou voulez-vous dire que vous avez essayé de restaurer le système avant la configuration LDAP, mais vous obtenez toujours cette erreur et ne pouvez pas accéder à l'assistant?

Si c'est le premier, alors le patch a encore besoin d'un peu plus de travail; Je devrais avoir une solution pour toi demain. Si c'est le dernier, vous pouvez essayer de réinitialiser la configuration LDAP avec

$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

(Vous pouvez omettre la partie RAILS_ENV=production si vous faites cela dans un environnement de développement.)

J'ai restauré une sauvegarde. La sauvegarde a été créée avant de démarrer la configuration LDAP pour la première fois.

J'essaye de réinitialiser la con LDAP avec
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
je ne "réinitialise" pas la conf, ça marche toujours.
Il semble maintenant que tout le système fonctionne, sans message d'erreur

(Sans LDAP)

D'accord, alors vous dites:

  1. Zammad travaille,
  2. vous n'avez actuellement aucune synchronisation LDAP configurée, et
  3. vous ne recevez plus de message d'erreur sur la page de synchronisation LDAP?

(Pour confirmer le point 2, vous pouvez exécuter RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')" , qui devrait afficher {} sur la console.)


Si tout ce qui précède est vrai et que vous avez copié la version corrigée de lib/ldap/user.rb que j'ai liée ci-dessus, pouvez-vous essayer de configurer la synchronisation LDAP une fois de plus et me dire si vous rencontrez toujours le même problème?

Ou si j'ai mal compris, faites-moi savoir quelle est la situation.

Merci.

Désolé pour la réponse tardive. Oui tout est correct. Une fois le LDAP à nouveau configuré, j'ai à nouveau eu la même erreur.

@rlue - comme @ e311 l'a déjà déclaré, il y a encore quelque chose qui ne va pas: https://community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/21

FYI: J'ai le même problème et le fichier user.rb corrigé n'a pas fonctionné pour moi aussi.
Merci d'avance pour votre travail

Tous ceux qui rencontrent toujours le problème après avoir modifié le fichier et redémarré l'application, veuillez indiquer l'erreur (y compris le suivi) à partir de votre fichier log/production.log . Merci!

@ e311 , @tbeitter et tous les autres qui rencontrent actuellement ce problème - j'ai _ encore

Placez-le dans votre répertoire zammad puis exécutez

$ zammad run rails r 2140_improved_bug_report.rb

Vous serez invité à entrer l'URL de votre serveur LDAP et vos informations de connexion, puis le script générera un fichier appelé 2140_debug_log.txt . Ce fichier contient un échantillon des attributs utilisateur de votre serveur LDAP, donc si cela peut signifier quelque chose de sensible, ne le publiez PAS publiquement . Envoyez-le plutôt à [email protected] et mentionnez que c'est pour Ryan.

Merci à tous pour votre patience continue pendant que nous travaillons sur ce bogue.

Bonjour,
Si j'essaie d'exécuter le nouveau script, j'obtiens ceci (LDAP est activé), aucun fichier n'a été créé.

serveradmin<strong i="7">@support</strong>:/opt/zammad$ sudo zammad run rails r 2140_improved_bug_report.rb
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:34:in `load': 2140_improved_bug_report.rb:77: invalid multibyte char (UTF-8) (SyntaxError)
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:34:in `perform'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/command/base.rb:63:in `perform'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/command.rb:44:in `invoke'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands.rb:16:in `<top (required)>'
        from /opt/zammad/bin/rails:4:in `require'
        from /opt/zammad/bin/rails:4:in `<main>'
serveradmin<strong i="8">@support</strong>:/opt/zammad$

production.log

ont également cette erreur LDAP ... (installation ubuntu 16.04 via repo)

root<strong i="6">@zammad01</strong>:/opt/zammad# zammad run rails r 2140_improved_bug_report.rb
Please specify a valid ruby command or the path of a script to run.
Run 'bin/rails runner -h' for help.

/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:37: trailing `_' in number
2140_improved_bug_report.rb
     ^
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:37: syntax error, unexpected tIDENTIFIER, expecting end-of-input
2140_improved_bug_report.rb

@ redbear-ger, veuillez vous assurer que 2140_improved_bug_report.rb est dans votre répertoire /opt/zammad .

@ e311 oups, c'est un bug bizarre.

J'ai modifié le script en supprimant certains caractères multioctets inutiles de la sortie de la console. Vous pouvez télécharger à nouveau le script et réessayer, ou simplement changer les guillemets intelligents de la ligne 77 en guillemets réguliers:

# replace “#{default_base_dn}” with '#{default_base_dn}'
printf "Base DN (leave blank for default '#{default_base_dn}'): "

Je ne suis pas sûr à 100% que cela résoudra le problème, mais j'ai une intuition.

@rlue , pas de 2140_improved_bug_report.rb dans / opt / zammad

btw: Dès que je supprime la configuration LDAP (RAILS_ENV = production zammad run rails r "Setting.set ('ldap_config', {})"), le problème disparaît.

@ redbear-ger merci pour vos commentaires rapides; veuillez télécharger le script de rapport de bogue , placez-le dans /opt/zammad et réessayez.

Même si le problème est résolu à 100% maintenant, il serait très utile d'avoir vos exemples de données afin que nous puissions créer des tests pour nous assurer que cela ne se reproduira plus.

Le bogue est parti mais aussi l'intégration ldap;)
Va télécharger le script de rapport ce soir

Bonjour,
J'ai le même problème et j'ai essayé toutes les suggestions ci-dessus. Aucun d'eux ne résout le problème.
J'ai donc décidé de reproduire le problème sur un système de développement pour vous donner un fichier de débogage sans fournir de données sensibles.

Le script 2140_improved_bug_report.rb m'a renvoyé le fichier texte suivant:
2140_debug_log.txt

Merci!

Merci @hublux! Pour une raison quelconque, il y a un tas d'endroits dans le fichier où les caractères de contrôle (_ par exemple, _ ^D ) sont remplacés par un carat littéral ( ^ ) suivi d'une lettre littérale ( D ), et cela provoque des erreurs lors de la tentative d'analyse du fichier. Avez-vous fait quelque chose sur le fichier avant de le télécharger, par hasard? (Disons, en l'ouvrant dans un éditeur de texte, puis en le fermant et en cliquant sur "enregistrer les modifications"?) Ou pensez-vous que peut-être que GitHub a pu effectuer une sorte de traitement dessus lorsque vous l'avez téléchargé?

Pour confirmer que le fichier d'origine est correctement formaté sur votre machine, essayez la commande suivante dans votre répertoire Zammad et vérifiez la sortie:

$ zammad run rails r "puts Marshal.load(File.read('2140_debug_log.txt')).first.inspect"

# should print the following:
["dn", "CN=Exchange Online-ApplicationAccount,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=ebusiness,DC=local"]

Si tout fonctionne comme prévu, veuillez envoyer le fichier par e-mail à [email protected].

Bonjour,
Merci pour votre réponse.

En effet, il semble que certaines de mes actions aient changé le fichier lorsque j'en ai copié le contenu.
le vérifier avec un chat, ça a l'air un peu différent.

grafik

J'ai essayé la commande et je reçois la sortie correcte.
grafik
J'ai envoyé le fichier au support zammad.

Voici aussi le nouveau fichier
2140_debug_log.txt

@hublux , merci encore pour vos commentaires rapides. Je pense qu'il y a quelque chose qui ne va pas avec le script de débogage que j'ai écrit, car ce nouveau fichier n'est pas tout à fait correct non plus (il manque beaucoup de données - 4 Ko, par rapport au journal de débogage de 16 Ko que vous avez envoyé à l'origine).

Depuis, j'ai corrigé le script de débogage pour (espérons-le) rendre le fichier 2140_debug_log.txt plus robuste et plus sûr à transmettre sans ces étranges problèmes d'encodage. Veuillez le télécharger une fois de plus et réessayer. (N'hésitez pas à l'inclure dans votre réponse sur ce fil, si cela vous convient le mieux.)

Et si vous êtes vraiment curieux de savoir ce qui n'allait pas avec le script de débogage ...

Il prenait à l'origine un hachage Ruby, le rassemblait , puis écrivait les données rassemblées dans un fichier «texte» binaire (sans encodage). Je ne sais vraiment pas pourquoi les fichiers texte binaires seraient corrompus lorsqu'ils étaient transmis d'une machine à une autre, mais c'est ce que nous observons ici.

Ce correctif prend les données rassemblées et les encode en base 64 avant de les enregistrer dans un fichier texte Unicode standard. Cela devrait rendre plus sûr la transmission sans corruption, car quoi de plus universel que l'Unicode?

2140_debug_log.txt
Là, vous avez la sortie avec le nouveau script
Cordialement!

Salut tout le monde,
car le même problème m'affecte aussi - même après la mise à jour vers le nouveau lib/ldap/user.rb

2140_debug_log.txt

J'ai aussi commencé à fouiller un peu dans le ldap_config -hash et j'ai commencé à me débarrasser de tout le contenu de !binary . Mais il s'est avéré que même si j'en avais 4, seuls deux étaient vissés avec l'encodage.

J'ai dû supprimer usersmimecertificate et msexchmailboxsecuritydescriptor .

Les deux autres, msexchmasteraccountsid et securityprotocol n'ont posé aucun problème.

Bonjour,

Juste pour clarifier, je ne sais pas si cela est évident puisque je n'ai vu personne en parler.
En tant que connexion LDAP, j'utilise Active Directory avec l'allemand comme langue système. J'ai donc installé un nouveau système et un domaine séparé. La seule différence par rapport au système précédent où le problème s'est produit est que sur le nouveau système, la langue est définie sur l'anglais américain au lieu de l'allemand. Avec cette configuration, aucune erreur n'est détectée, tout fonctionne comme prévu. J'ai donc pris mon système zammad d'origine là où j'avais le problème et l'ai connecté au domaine nouvellement installé et le problème a disparu.

L'exécution en suivant la configuration de travail me donne la sortie suivante:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

workingsetup.txt

Si j'exécute la commande pour vérifier la configuration ldap avec la configuration d'origine, elle échoue et reçoit l'erreur suivante:

grafik

J'espère que cela vous aide.
Salutations!

Merci @hublux! Nous avons une solution en cours grâce à votre contribution; il devrait être fusionné avec develop peu!

screenshot_1

Après la mise à jour, obtenez toujours la même erreur. (Mais sans configuration Exchange, uniquement LDAP-Sync)

Salut @tidet , merci pour les commentaires. Veuillez suivre les instructions de ce commentaire ; vos exemples de données nous aideront grandement à résoudre ce problème de manière concluante.

Salut,
Juste pour informer que j'ai eu à nouveau le même problème, mais l'ancienne configuration existait toujours. Veuillez donc procéder comme suit si vous rencontrez à nouveau ce problème.

Supprimez l'ancienne configuration avec la commande suivante:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • arrêter le service zammad

  • mettre à jour zammad

  • redémarrez le service zammad et essayez de reconfigurer la connexion LDAP

Après cela, je n'ai rencontré aucun problème.

Salutations

@rlue dois-je essayer la solution ci-dessus ou rester à l'erreur actuelle à des fins de débogage?
Le courrier électronique avec le fichier journal est prêt à prendre en charge @

@tidet , maintenant que nous avons vos exemples de données LDAP, n'hésitez pas à essayer ce qui précède. J'ai trouvé une valeur qui pourrait encore causer des problèmes de toute façon, mais c'est probablement bien. Et que les instructions ci-dessus résolvent le problème pour vous ou non, un autre correctif sera en préparation plus tard dans la journée.

EDIT: J'ai changé d'avis. Puisque le correctif fonctionne pour vous, je vais m'abstenir de modifier le code et d'ajouter toute complexité inutile jusqu'à ce qu'il soit réellement cassé pour quelqu'un.

@hublux Fix a également fonctionné pour moi.

@hublux a également été corrigé

nous sommes toujours confrontés à ce problème. J'ai fait: @hublux a écrit, supprimé la configuration, mis à jour zammad (2.6.0-1534939663.6d23dae9.stretch maintenant), redémarré zammad et configuré notre connexion ldap. Dois-je corriger manuellement le code? Merci d'avance.

J'étais en vacances, désolé pour la réponse tardive ici et si je manquais quelque chose :)

Salut @tbeitter ,
Si vous exécutez cette commande, vous recevez une sortie:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

Si c'est le cas, vérifiez ceci:
https://github.com/zammad/zammad/issues/2140#issuecomment -417605384

Salutations

Oui, j'obtiens une erreur similaire à la vôtre:

"\xC2" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

Salut,

Je viens de vérifier ma version de Zammad que j'ai mise à jour ce matin:
grafik
Cela diffère du vôtre.

Pourriez-vous s'il vous plaît recommencer avec ces étapes:

  • Supprimer la configuration LDAP
  • arrêter le service zammad
  • mettre à jour à nouveau zammad
  • démarrer le service zammad

Salutations

@hublux qui a fonctionné pour moi! Merci!

Un grand merci à

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

strey picture strey  ·  3Commentaires

infestdead picture infestdead  ·  3Commentaires

metasnw picture metasnw  ·  3Commentaires

MrGeneration picture MrGeneration  ·  3Commentaires

robwilc picture robwilc  ·  3Commentaires