Zammad: LDAP / Exchange UTF-8状态码500

创建于 2018-07-24  ·  59评论  ·  资料来源: zammad/zammad

您好-感谢您提出问题。 在创建问题之前,请确保以下事项-谢谢! 🤓自11月15日以来,我们在社区委员会处理所有请求,但实际错误除外。 完整说明:https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21请发布:-功能要求-开发问题-板上的技术问题-> https:/ /community.zammad.org! 如果您认为自己遇到了错误,请继续:-搜索现有问题,并在CHANGELOG.md中查找您的问题-可能已经存在解决方案-如有可能,请确保使用最新版本的Zammad-添加`log / production。从您的系统中记录文件。 注意:确保其中没有机密数据! -请用英文写问题-不要删除模板-否则,我们将在没有进一步评论的情况下关闭问题-在我们的邮件列表中询问有关Zammad配置和使用的问题。 请参阅:https://zammad.org/participate注意:我们始终尽力而为。 不幸的是,有时请求太多,我们无法一次处理所有事情。 如果您想确定问题的优先级/上报问题,可以通过支持合同进行(请参阅https://zammad.com/pricing#selfhosted)。 *提交问题时,上方的文本块将被自动删除*

资讯:

  • 使用的Zammad版本:2.6.x
  • 安装方法(来源,软件包,..):DEP
  • 作业系统:ubuntu 18.04
  • 数据库+版本:psql(PostgreSQL)10.4(Ubuntu 10.4-0ubuntu0.18.04)
  • Elasticsearch版本:6.6.1
  • 浏览器+版本:
    铬合金

预期行为:

显示的LDPA帧(在配置菜单系统->集成-> LDAP中)没有错误
*

实际行为:

不显示LDAP框架。 框架保持空白并显示错误消息
以及API和监控
2018-07-24 08_35_07-microsoft edge
*
状态码500
{“错误”:“ \” \ xC5 \“从ASCII-8BIT到UTF-8”}

重现行为的步骤:

仅配置LDAP。

*
我的配置:
适配器:PostgreSQL
数据库:zammad
泳池:50
超时:5000
编码:utf8
用户名: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

是的,我确定这是一个错误,没有功能要求或一般性问题。

LDAP bug import

最有用的评论

你好,
只是为了通知我,我又遇到了同样的问题,但是旧的配置仍然存在。 因此,如果您再次遇到此问题,请按照以下步骤进行操作。

使用以下命令删除旧配置:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • 停止Zammad服务

  • 更新zammad

  • 再次启动zammad服务,然后尝试重新配置ldap连接

在此之后,我没有遇到任何问题。

问候

所有59条评论

嗨, @ e311-您能同时提供日志的上半部分吗? 在此打印出所需的信息,并且当前缺少该信息。 另外:您能否描述为解决此问题而执行的步骤? 目前尚不清楚。 谢谢!

你好,
我会尝试。
我打开(在admin-> system-> Integarion中)LDAP。 我开始配置,一切正常。
域DN用户密码。
3 ldap

我使用了标准映射。
4

广告LDAP Config屏幕看起来不错。
6
我按安全。 而且我收到错误消息。
7

在我重新加载页面后,框架是空的。
2018-07-24 08_35_07-microsoft edge

这是完整的日志文件:

log.txt

嗨, @ e311-感谢您的全面撰写! 日志中有趣的一行是这一行:

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'

基本上说,在LDAP设置中有经过特殊编码的字符,将被存储。 我也可以在日志中看到这些内容。

我认为这足以重现该问题。 感谢您迄今为止的支持。 我们将解决此问题。

请注意,Exchange集成也会受到影响:#2152

@ e311

我们一直在研究这个问题,并且非常有信心我们了解正在发生的事情,但是我们需要再次寻求您的帮助才能完全确定。

步骤1:确认错误的原因

在终端的Zammad目录中尝试以下行。 如果我们的猜想是正确的,那么它将失败(_i.e._引发错误并显示回溯):

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

如果您看到的错误与您在初始错误报告中获得的Encoding::UndefinedConversionError相同,那就太好了–进入步骤2! 如果不是,请确认自上次发生此错误以来,您尚未重置数据库或更改LDAP配置。 如果您仍然没有收到错误,请通知我们,以便我们继续进行调查。

第2步:向我们发送重要信息的最后一点

在终端中运行以下命令:

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

然后,将生成的文件( zammad_2140_debug_output.txt )发送到[email protected] 请务必提及该消息是针对Thorsten Eckel的,以及针对bug#2140的。

这样,我们应该能够立即获得修复。

再次感谢你的帮助!

这是第一位按摩师

serveradmin @ support :/ opt / zammad $ rails r“放入Setting.get('ldap_config')。to_json”
追溯(最近一次通话):
4:从bin / rails:3 :in <main>'         3: from bin/rails:3:in require_relative'
2:从/opt/zammad/config/boot.rb:3:在<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:在`require'中:无法加载此类文件-捆绑程序/安装程序(LoadError)

Gesendet:Montag,06. August 2018 um 11:53 Uhr
冯:“ Ryan Lue” [email protected]
An:zammad / zammad [email protected]
抄送:e311 [email protected] ,提及提及@ noreply.github.com
Betreff:回复:[zammad / zammad] LDAP / Exchange UTF-8状态码500(#2140)

@ e311

我们一直在研究这个问题,并且非常有信心我们了解正在发生的事情,但是我们需要再次寻求您的帮助才能完全确定。

步骤1:确认错误的原因

在终端的Zammad目录中尝试以下行。 如果我们的怀疑是正确的,那么它应该会失败(即引发错误并显示回溯):

$ rails r“放入Setting.get('ldap_config')。to_json”

如果您看到的错误与您在初始错误报告中得到的Encoding :: UndefinedConversionError相同,那么很好–进入步骤2! 如果不是,请确认自上次发生此错误以来,您尚未重置数据库或更改LDAP配置。 如果您仍然没有收到错误,请通知我们,以便我们继续进行调查。

第2步:向我们发送重要信息的最后一点

在终端中运行以下命令:

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

然后,将生成的文件(zammad_2140_debug_output.txt)发送到[email protected] 请务必提及该消息是针对Thorsten Eckel的,以及针对bug#2140的。

这样,我们应该能够立即获得修复。

再次感谢你的帮助!

-
您收到此邮件是因为有人提到您。
直接回复此电子邮件,在GitHub上查看,或使该线程静音。

Rails r“ pp Setting.get('ldap_config')。except('bind_pw')”> zammad_2140_debug_output.txt
产生一个emty文件(我无法上传,因为它是emty)

befehl
output

@ e311,您好-请尝试以下操作:

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

或者:

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

但应该是第一行。

我尝试第一个命令:
与带有sudo或不带sudo的“ Serveradmin”相同
image
Bundel我没有安装吗?
image

@ e311 ,这很奇怪。 现在让我们忽略第二个命令( bundle exec rails ... )—我认为这不是正确的路径。 您能否尝试备份日志文件并创建一个新的空文件?

/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

感谢您与我们一起解决此问题的所有帮助。

@rlue我们昨天用@ e311进行了命令。

该日志具有完美的访问权限,我再次检查了这一点。
如果没有,我将把ldap-config输出发送给您。

糟糕,您完全是在昨天开始的时候向我发送了日志。 不知道我怎么想念它!

@ e311 ,我没有在调试输出中看到期望的结果。 现在, @ MrGeneration可以帮助您使zammad run rails r ...命令正常工作,您可以再次尝试以下操作,并告诉我是否正在筹集此问题所针对的Encoding::UndefinedConversionError吗?

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

我收到消息“您的Ruby版本是2.5.1,但是您的Gemfile指定了2.4.4”
抱歉,它不起作用(我尝试了Google对我所说的所有想法)

您的Ruby和Elasticsearch版本与Zammad不兼容。
使用Ruby 2.4.4和Elasticsearch最高5.6。

@ e311真的很抱歉,完全是我的错。 忘记再次添加zammad r 。 -_-'

我的意思是

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

因此,最后一条命令的输出正是我所期望的。 综上所述,您的LDAP服务器上的某些用户属性似乎具有二进制数据值。 Zammad尝试将它们转换为字符串,然后将它们从后端传递到前端,但是由于它们实际上不是字符串,因此最终会遇到一些编码/转换问题。

当然,由于我无法连接到您的LDAP服务器,因此无法百分百确定修复程序是否有效,直到您为我们尝试为止。 因此,我想在两点上向您寻求帮助:

  1. 上次我要求您运行一些命令并通过电子邮件将输出发送给我们时(上周三),我给您的命令不太正确,也没有完全向我们提供所需的信息。 这是一次应该正确处理的脚本(在此处下载):

    # 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))
    

    抱歉让您重复两次。

  2. 我写了一个补丁,我认为应该可以解决该问题。 基本上,只要在LDAP同步中遇到二进制数据值,它就会跳过该值,而不是尝试将其另存为字符串。

    在将这些更改合并到主代码库之前,我想确认此修复程序可以在您的计算机上正常工作。 这是lib/ldap/user.rb文件

    下载它并将其复制到/opt/zammad/lib/ldap/user.rb ,然后重新启动Zammad(重要!)并再次运行整个LDAP配置向导。 由于您已经有一个现有的LDAP配置,这意味着您必须单击面板底部的“更改”按钮:

    screenshot_20180814_201507

如果第2步仍然无法解决您的问题,请再次运行第1步中的脚本,并确保将两个文件

再次感谢您的帮助和耐心!

我重新启动孔系统,但是我不能按“更改”按钮。

image

在补丁之前
2140_bug_report(Step1).txt

补丁之后
2140_bug_report(Step2).txt

我也尝试新的LDAP配置。 我将系统恢复为LDAP conf。 但结果相同。

我已经检查了域功能级别。 是2003年,这可能是问题吗

我重新启动孔系统,但是我不能按“更改”按钮。

感谢您澄清这一点。 最初,我还不了解问题的范围。

我也尝试新的LDAP配置。 我将系统恢复为LDAP conf。 但结果相同。

您是说将系统还原到LDAP conf之前,成功运行了整个向导,但仍然遇到相同的问题? 还是您是说您试图将系统还原到LDAP conf之前,但是仍然出现此错误并且无法进入向导?

如果是前者,则该补丁仍需要做更多工作。 明天我应该为您解决。 如果是后者,则可以尝试使用以下命令重置LDAP配置

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

(如果在开发环境中执行此操作,则可以省去RAILS_ENV=production部分。)

我还原了一个备份,该备份是在我第一次启动LDAP配置之前创建的。

我尝试使用以下方法重置LDAP con
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
我没有“重置” conf,它仍然有效。
现在看来整个系统正在运行,没有错误消息

(不带LDAP)

好吧,所以您说的是:

  1. Zammad正在运作,
  2. 您当前没有配置LDAP同步,并且
  3. 您不再在LDAP同步页面上收到错误消息了吗?

(要确认第2点,您可以运行RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')" ,该命令应在控制台上打印{} 。)


如果以上所有条件均成立,并且您已复制了我上面链接的lib/ldap/user.rb修补程序版本,您是否可以尝试再次设置LDAP同步,并告诉我是否仍然遇到同样的问题?

或者,如果我误解了,请让我知道情况如何。

谢谢。

这么晚才回复很抱歉。 是的,一切都正确。 重新配置LDAP之后,我再次遇到相同的错误。

仅供参考:我遇到了同样的问题,修补的user.rb也对我不起作用。
谢谢你的工作

更改文件并重新启动应用程序后仍然存在问题的每个人,请提供log/production.log文件中的错误(包括回溯)。 谢谢!

@ E311,@tbeitter,和其他人目前是谁在遇到此问题-我有_yet another_调试脚本我想你跑。 我不想说得太早,但这确实应该是最后一句话。

将其放在您的zammad目录中,然后运行

$ zammad run rails r 2140_improved_bug_report.rb

系统将提示您输入LDAP服务器URL和登录凭据,然后该脚本将生成一个名为2140_debug_log.txt 。 该文件包含来自LDAP服务器的用户属性示例,因此,如果这可能意味着任何敏感内容,请勿将其公开发布。 而是将其发送至[email protected]并提及它是针对Ryan的。

感谢大家在我们解决此错误期间的一贯耐心。

你好,
如果我尝试运行新脚本,则会收到此消息(LDAP已打开),但未创建文件。

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$

生产日志

也有此ldap错误...(通过回购安装ubuntu 16.04)

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,请确保2140_improved_bug_report.rb在您的/opt/zammad目录中。

@ e311糟糕,这是一个奇怪的错误。

我已经通过从控制台输出中删除一些不必要的多字节字符来修改了脚本。 您可以重新下载脚本并重试,或者只需将第77行的智能引号更改为常规引号即可:

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

并非100%肯定会解决此问题,但我有一种直觉。

@ rlue,/ opt / zammad中没有2140_improved_bug_report.rb

顺便说一句:删除LDAP配置(RAILS_ENV = production zammad运行导轨r“ Setting.set('ldap_config',{})”))后,问题消失了。

@ redbear-ger感谢您的快速反馈; 请下载错误报告脚本,将其放在/opt/zammad ,然后重试。

即使问题现在已100%消失了,拥有示例数据也会有很大帮助,因此我们可以构建测试以确保不会再次发生这种情况。

该错误已消失,但也与ldap集成;)
今晚将下载报告脚本

你好,
我有同样的问题,并尝试了以上所有建议。 他们都没有解决问题。
因此,我决定在开发系统上重现该问题,以便在不提供敏感数据的情况下为您提供调试文件。

2140_improved_bug_report.rb脚本向我返回了以下文本文件:
2140_debug_log.txt

谢谢!

谢谢@hublux! 出于某些原因,文件中有一堆位置将控制字符(_e.g。,_ ^D )替换为文字克拉( ^ ),后跟文字字母( D ),这会在尝试解析文件时导致错误。 上载之前,您是否对文件做了任何处理? (比如说,在文本编辑器中将其打开,然后将其关闭,然后单击“保存更改”?)或者您是否认为GitHub在上载时可能已经对其进行了某种处理?

要确认原始文件在计算机上的格式正确,请在Zammad目录中尝试以下命令,并验证输出:

$ 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"]

如果一切正常,请通过电子邮件将文件发送至[email protected]

你好,
感谢你的回复。

确实,当我从文件中复制内容时,似乎我的某些操作确实更改了文件。
用猫检查它,看起来有点不同。

grafik

我尝试了该命令并收到了正确的输出。
grafik
我已将该文件发送给zammad支持。

这也是新文件
2140_debug_log.txt

@hublux ,再次感谢您的迅速反馈。 我认为我编写的调试脚本有问题,因为这个新文件也不是很正确(与最初发送的16kB调试日志相比,它丢失了很多数据-4kB)。

此后,我修补了调试脚本,以(希望)使2140_debug_log.txt文件更健壮和更安全地传输,而不会出现这些奇怪的编码问题。 请再下载一次,然后重试。 (如果方便的话,可以将其包含在对此线程的答复中。)

而且,如果您真的想知道调试脚本出了什么问题,...

它最初采用Ruby哈希,将其编组,然后将编组的数据写入二进制(无编码)“文本”文件。 我真的不知道为什么二进制文本文件从一台机器传输到另一台机器时会被破坏,但这就是我们在这里观察到的。

此修复程序将整理后的数据并对其进行base-64编码,然后再将其保存到常规的Unicode文本文件中。 那应该可以更安全地进行传输而不会损坏,因为比Unicode更通用的是什么?

2140_debug_log.txt
在那里,您将获得带有新脚本的输出
问候!

嘿大家,
也插话了,因为同样的问题也影响了我-即使在更新为新的lib/ldap/user.rb

2140_debug_log.txt

我还开始在ldap_config -hash中进行一些挖掘,并开始摆脱所有!binary内容。 但是事实证明,即使我有4个,也只有两个搞砸了编码。

我必须删除usersmimecertificatemsexchmailboxsecuritydescriptor

其他两个msexchmasteraccountsidsecurityprotocol没有造成任何麻烦。

你好,

只是为了澄清一下,我不确定这是否显而易见,因为我还没有看到有人提到这一点。
作为LDAP连接,我使用Active Directory和德语作为系统语言。 因此,我安装了一个新系统和一个单独的域。 与发生问题的先前系统的唯一区别是,在新系统上,语言设置为美国英语,而不是德语。 使用此设置,不会发现错误,一切都会按预期进行。 因此,我将原始的zammad系统带到出现问题的地方,并将其与新安装的Domain连接起来,问题就消失了。

在工作设置上运行以下命令,可以得到以下输出:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

workingsetup.txt

如果我运行命令以原始设置检查ldap配置,它将失败并收到以下错误:

grafik

希望这对您有帮助。
问候!

谢谢@hublux! 谢谢您的投入,我们的工作已经完成; 它应该很快合并到develop

screenshot_1

更新后仍然出现相同的错误。 (但如果没有Exchange设置,则只有LDAP-Sync)

您好@tidet ,感谢您的反馈。 请遵循本评论中的指示; 您的样本数据将在帮助我们最终解决此问题方面大有帮助。

你好,
只是为了通知我,我又遇到了同样的问题,但是旧的配置仍然存在。 因此,如果您再次遇到此问题,请按照以下步骤进行操作。

使用以下命令删除旧配置:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • 停止Zammad服务

  • 更新zammad

  • 再次启动zammad服务,然后尝试重新配置ldap连接

在此之后,我没有遇到任何问题。

问候

@rlue我应该尝试上述解决方案还是为了调试目的而停留在当前错误状态?
带有日志文件的电子邮件已发送至support @

@tidet ,现在我们有了您的示例LDAP数据,请继续尝试以上操作。 我确实找到了一个_might_仍然会引起问题的值,但这可能很好。 不论以上说明是否为您解决了问题,今天晚些时候都会在管道中发布另一个补丁。

编辑:改变了主意。 由于此修复程序对您有效,因此我将避免修改代码并添加任何不必要的复杂性,直到它对某人真正​​被破坏为止。

@hublux Fix也为我工作。

@hublux也固定

我们仍然面临这个问题。 我所做的是@hublux编写的,删除了配置,更新了zammad(现在是2.6.0-1534939663.6d23dae9.stretch),重新启动了zammad并配置了ldap连接。 我需要手动打补丁代码吗? 提前致谢。

我正在度假,很抱歉在这里延迟回复,如果我错过了任何事情:)

@tbeitter
如果运行此命令,您会收到任何输出:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

如果是这样,请检查以下内容:
https://github.com/zammad/zammad/issues/2140#issuecomment -417605384

问候

是的,我收到与您类似的错误:

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

你好,

我刚刚检查了我今天早上更新的Zammad版本:
grafik
它与您的不同。

您能否按照以下步骤再次进行操作:

  • 删除LDAP配置
  • 停止Zammad服务
  • 再次更新zammad
  • 启动zammad服务

问候

对我有用的@hublux ! 谢谢!

大声向@hublux大喊大叫,以帮助您解决其他用户的问题。 e07f41ed现在包括一个数据库迁移,该迁移将自动清除错误的LDAP配置,以便将来遇到此问题的任何用户都不再需要处理这些手动步骤。

此页面是否有帮助?
0 / 5 - 0 等级