ããã«ã¡ã¯ãåé¡ãæåºããŠããã ãããããšãããããŸãã åé¡ãäœæããåã«ã次ã®ããšã確èªããŠãã ãã-ããããšãããããŸãïŒ ð€11æ15æ¥ä»¥éãã³ãã¥ããã£ããŒãã§ãå®éã®ãã°ãé€ããã¹ãŠã®ãªã¯ãšã¹ããåŠçããŸãã å®å šãªèª¬æïŒhttpsïŒ//community.zammad.org/t/major-change-regarding-github-issues-community-board/21æçš¿ããŠãã ããïŒ-æ©èœã®ãªã¯ãšã¹ã-éçºã®è³ªå-ããŒãäžã®æè¡çãªè³ªå-> httpsïŒ/ /community.zammad.orgïŒ ãã°ãçºçãããšæãããå Žåã¯ãç¶è¡ããŠãã ããã-æ¢åã®åé¡ãšCHANGELOG.mdã§åé¡ãæ€çŽ¢ããŸã-ãã§ã«è§£æ±ºçãããå¯èœæ§ããããŸã-å¯èœã§ããã°ææ°ããŒãžã§ã³ã®Zammadã䜿çšããŠãã ãã-`log / productionãè¿œå ããŠãã ãããã·ã¹ãã ããã®log`ãã¡ã€ã«ã éèŠïŒæ©å¯ããŒã¿ãå«ãŸããŠããªãããšã確èªããŠãã ããã -åé¡ãè±èªã§æžããŠãã ãã-ãã³ãã¬ãŒããåé€ããªãã§ãã ãã-ããããªããšãã³ã¡ã³ããªãã§åé¡ãéããŸã-ã¡ãŒãªã³ã°ãªã¹ãã§Zammadã®æ§æãšäœ¿çšæ³ã«ã€ããŠè³ªåããŠãã ããã åç §ïŒhttpsïŒ//zammad.org/participate泚ïŒç§ãã¡ã¯åžžã«æåãå°œãããŸãã æ®å¿µãªããããªã¯ãšã¹ããå€ãããŠããã¹ãŠãäžåºŠã«åŠçã§ããªãå ŽåããããŸãã åé¡ã«åªå é äœãä»ããããšã¹ã«ã¬ãŒã·ã§ã³ãããããå Žåã¯ããµããŒãå¥çŽã䜿çšããŠè¡ãããšãã§ããŸãïŒhttps://zammad.com/pricing#selfhostedãåç §ïŒã *åé¡ãéä¿¡ãããšãäžéšã®ããã¹ããããã¯ã¯èªåçã«åé€ãããŸã*
LDPAãã¬ãŒã ããšã©ãŒãªãã§è¡šç€ºãããŸãïŒæ§æã¡ãã¥ãŒã®[ã·ã¹ãã ]-> [çµ±å]-> [LDAP]ïŒ
*
LDAPãã¬ãŒã ã¯è¡šç€ºãããŸããã ãã¬ãŒã ã¯ç©ºã®ãŸãŸã§ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸã
ãŸããAPIãšã¢ãã¿ãªã³ã°
*
StatusCode 500
{"error"ïŒ "\" \ xC5 \ "from ASCII-8BIT to 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
ã¯ããããã¯ãã°ã§ãããæ©èœã®ãªã¯ãšã¹ããäžè¬çãªè³ªåã¯ãªããšç¢ºä¿¡ããŠããŸãã
ããã«ã¡ã¯@ e311-ãã°ã®äžéšã
ããã«ã¡ã¯ã
ãã£ãŠã¿ãŸãã
ïŒadmin-> system-> Integarionã§ïŒLDAPãéããŸãã æ§æãéå§ããŸãããã¹ãŠåé¡ãããŸããã
ãã¡ã€ã³DNãŠãŒã¶ãŒãã¹ã¯ãŒãã
æšæºãããã³ã°ã䜿çšããŸããã
LDAPæ§æç»é¢ãæ£åžžã«è¡šç€ºãããªãããšã確èªããŠãã ããã
å®å
šãæŒããŸãã ãããŠããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãã
ããŒãžããªããŒãããåŸããã¬ãŒã ã¯ç©ºã«ãªããŸãã
ãããŠããã«å®å šãªãã°ãã¡ã€ã«ããããŸãïŒ
ããã«ã¡ã¯@ 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 ã
ç§ãã¡ã¯ãã®åé¡ãæãäžããŠãããäœãèµ·ãã£ãŠããã®ããç解ããŠãããšç¢ºä¿¡ããŠããŸãããå®å šã«ç¢ºå®ã«ããããã«ããäžåºŠããªãã®å©ããæ±ããå¿ èŠããããŸãã
ã¿ãŒããã«ã®Zammadãã£ã¬ã¯ããªã§æ¬¡ã®è¡ãè©ŠããŠãã ããã çæãæ£ãããã°ã倱æããã¯ãã§ãïŒã€ãŸãããšã©ãŒãçºçãããã¬ãŒã¹ããã¯ã衚瀺ãããŸãïŒã
$ rails r "puts Setting.get('ldap_config').to_json"
æåã®ãã°ã¬ããŒãã§ååŸããã®ãšåãEncoding::UndefinedConversionError
ãã¬ãŒã¹ããã¯ã衚瀺ãããå Žåã¯ãã¹ããã2ã«é²ãã§ãã ããã ããã§ãªãå Žåã¯ããã®ãã°ãæåŸã«çºçããŠããããŒã¿ããŒã¹ããªã»ããããããLDAPæ§æãå€æŽãããããŠããªãããšã確èªããŠãã ããã ããã§ããšã©ãŒãçºçããªãå Žåã¯ãåŒãç¶ã調æ»ã§ããããã«ãç¥ãããã ããã
ã¿ãŒããã«ã§æ¬¡ã®ã³ãã³ããå®è¡ããŸãã
$ rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt
次ã«ãçµæã®ãã¡ã€ã«ïŒ zammad_2140_debug_output.txt
ïŒã[email protected]ã«éä¿¡ããŸã
ããã«ãããä¿®æ£ãããã«æ©èœãããããšãã§ããã¯ãã§ãã
ããªãã®ã芪åã«æè¬ããŸãïŒ
ããã¯æåã®ãããµãŒãžã§ã
serveradmin @ support ïŒ/ opt / zammad $ rails r "puts Setting.getïŒ 'ldap_config'ïŒãto_json"
ãã¬ãŒã¹ããã¯ïŒæåŸã®æåŸã®åŒã³åºãïŒïŒ
4ïŒbin / railsãã<main>'
    3: from bin/rails:3:in
require_relative '
2ïŒ/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 'ïŒãã®ãããªãã¡ã€ã«ãããŒãã§ããŸãã--bundle / setupïŒLoadErrorïŒ
GesendetïŒMontagã2018幎8æ6æ¥11:53 Uhr
VonïŒãRyanLueã [email protected]
åçïŒzammad / zammad [email protected]
CcïŒe311 [email protected] ãèšå@ noreply.github.com
BetreffïŒReïŒ[zammad / zammad] LDAP / Exchange UTF-8ã¹ããŒã¿ã¹ã³ãŒã500ïŒïŒ2140ïŒ
ããã«ã¡ã¯@ e311 ã
ç§ãã¡ã¯ãã®åé¡ãæãäžããŠãããäœãèµ·ãã£ãŠããã®ããç解ããŠãããšç¢ºä¿¡ããŠããŸãããå®å šã«ç¢ºå®ã«ããããã«ããäžåºŠããªãã®å©ããæ±ããå¿ èŠããããŸãã
ã¹ããã1ïŒãã°ã®åå ã確èªãã
ã¿ãŒããã«ã®Zammadãã£ã¬ã¯ããªã§æ¬¡ã®è¡ãè©ŠããŠãã ããã çæãæ£ãããã°ã倱æããã¯ãã§ãïŒã€ãŸãããšã©ãŒãçºçãããŠãã¬ãŒã¹ããã¯ã衚瀺ããŸãïŒã
$ 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]ã«éä¿¡ããŸã
ããã«ãããä¿®æ£ãããã«æ©èœãããããšãã§ããã¯ãã§ãã
ããªãã®ã芪åã«æè¬ããŸãïŒ
â
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããããã¹ã¬ããããã¥ãŒãããŠãã ããã
rails r "pp Setting.getïŒ 'ldap_config'ïŒãexceptïŒ 'bind_pw'ïŒ"> zammad_2140_debug_output.txt
emtyãã¡ã€ã«ãäœæããŸãïŒemtyã§ããããã¢ããããŒãã§ããŸããïŒ
ããã«ã¡ã¯@ 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ããšåã
ãã³ãã«ãã€ã³ã¹ããŒã«ãããŠããŸãããïŒ
@ e311 ãããã¯éåžžã«å¥åŠã§ãã ä»ã®ãšããã2çªç®ã®ã³ãã³ãïŒ 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ãšäºææ§ããããŸããã
Ruby2.4.4ãšæ倧5.6ã®Elasticsearchã䜿çšããŸãã
@ e311ç³ãèš³ãããŸããããå®å
šã«ç§ã®ããã§ãã zammad r
ããäžåºŠè¿œå ããã®ãå¿ããŸããã -_- '
ç§ã¯æå³ããŸãã
$ zammad run rails r "puts Setting.get('ldap_config').to_json"
ã¡ãã»ãŒãžã¯æ¬¡ã®ãšããã§ãã
ãããã£ãŠãæåŸã®ã³ãã³ãããã®åºåã¯ããŸãã«ç§ãæåŸ ããŠãããã®ã§ããã èŠçŽãããšãLDAPãµãŒããŒã®äžéšã®ãŠãŒã¶ãŒå±æ§ã«ãã€ããªããŒã¿å€ãããããã§ãã Zammadã¯ããããæååã«å€æããŠãããããã¯ãšã³ãããããã³ããšã³ãã«æž¡ãããšããŸãããå®éã«ã¯æååã§ã¯ãªãããããšã³ã³ãŒã/å€æã®åé¡ãçºçããŸãã
ãã¡ãããLDAPãµãŒããŒã«æ¥ç¶ã§ããªããããè©ŠããŠã¿ããŸã§ä¿®æ£ãæ©èœãããã©ããã100ïŒ ç¢ºä¿¡ããããšã¯ã§ããŸããã ããã§ãç§ã¯ããã«2ã€ã®ç¹ã«ã€ããŠããªãã®å©ããæ±ããããšæããŸãïŒ
ååãããã€ãã®ã³ãã³ããå®è¡ããŠåºåãé»åã¡ãŒã«ã§éä¿¡ããããã«äŸé ŒãããšãïŒå é±ã®æ°Žææ¥ïŒãç§ãæäŸããã³ãã³ãã¯å®å šã«æ£ãããªããå¿ èŠãªæ å ±ãæ£ç¢ºã«æäŸããŠããŸããã§ããã ä»åã¯æ£ããå®è¡ããå¿ èŠãããã¹ã¯ãªããã次ã«ç€ºããŸãïŒ
# 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))
äºåºŠããããŠããããªããã
åé¡ãä¿®æ£ããå¿ èŠããããšæãããããäœæããŸããã åºæ¬çã«ãLDAPåæã§ãã€ããªããŒã¿å€ãæ€åºãããšãæååãšããŠä¿åããããšããã®ã§ã¯ãªããã¹ãããããŸãã
ãããã®å€æŽãã¡ã€ã³ã³ãŒãããŒã¹ã«ããŒãžããåã«ãä¿®æ£ããã·ã³ã§æ©èœããããšã確èªããããšæããŸãã ããã¯ã lib/ldap/user.rb
ãã¡ã€ã«ã®ãã°ä¿®æ£ããŒãžã§ã³ã§ãã
ããŠã³ããŒãããŠ/opt/zammad/lib/ldap/user.rb
ã«ã³ããŒãã Zammadã
ããã§ãæé 2ã§ä¿®æ£ã§ããªãå Žåã¯ãæé 1ã®ã¹ã¯ãªãããå床å®è¡ããŠãäž¡æ¹ã®ãã¡ã€ã«ãéä¿¡ããŠãã ããã
ããªãã®å©ããšããªãã®å¿èã«ããäžåºŠæè¬ããŸãïŒ
ããŒã«ã·ã¹ãã ãåèµ·åããŸããããå€æŽãã¿ã³ãæŒãããšãã§ããŸããã
ãããã®å
2140_bug_reportïŒStep1ïŒ.txt
ãããåŸ
2140_bug_reportïŒStep2ïŒ.txt
ãŸããæ°ããLDAPæ§æãè©ŠããŠãã ããã LDAPconfã®åã«ã·ã¹ãã ã埩å ããŸãã ããããåãçµæã§ã¯ãããŸããã
ãã¡ã€ã³ã®æ©èœã¬ãã«ã確èªããŸããã 2003幎ã§ããããåé¡ã«ãªãå¯èœæ§ããããŸã
ããŒã«ã·ã¹ãã ãåèµ·åããŸããããå€æŽãã¿ã³ãæŒãããšãã§ããŸããã
ãããæ確ã«ããŠãããŠããããšãã ããšããšåé¡ã®ç¯å²ãããããªãã£ãã
ãŸããæ°ããLDAPæ§æãè©ŠããŠãã ããã LDAPconfã®åã«ã·ã¹ãã ã埩å ããŸãã ããããåãçµæã§ã¯ãããŸããã
LDAP confã®åã«ã·ã¹ãã ã埩å ãããŠã£ã¶ãŒãå šäœãæ£åžžã«å®è¡ããã«ãããããããåãåé¡ãçºçãããšããããšã§ããïŒ ãŸãã¯ãLDAP confã®åã«ã·ã¹ãã ã埩å ããããšããããããã§ããã®ãšã©ãŒãçºçãããŠã£ã¶ãŒãã«ã¢ã¯ã»ã¹ã§ããªããšããããšã§ããïŒ
åè ã®å Žåããããã«ã¯ãŸã ããå°ãäœæ¥ãå¿ èŠã§ãã ææ¥ããªãã®ããã«ä¿®æ£ãå¿ èŠã§ãã åŸè ã®å Žåã¯ãLDAPæ§æããªã»ããããŠã¿ãŠãã ããã
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
ïŒéçºç°å¢ã§ãããè¡ãå Žåã¯ã RAILS_ENV=production
éšåãçç¥ã§ããŸããïŒ
ããã¯ã¢ããã埩å ããŸãããããã¯ã¢ããã¯ãLDAPæ§æãåããŠéå§ããåã«äœæãããŸããã
LDAPconããªã»ããããããšããŠããŸã$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
confãããªã»ãããããŸããããããã§ãæ©èœããŸãã
ãšã©ãŒã¡ãã»ãŒãžãªãã§ãã·ã¹ãã å
šäœãå®è¡ãããŠããããã«èŠããŸã
ïŒLDAPãªãïŒ
ããŠãããªãã¯èšã£ãŠããŸãïŒ
ïŒãã€ã³ã2ã確èªããããã«ã RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')"
å®è¡ã§ããŸããããã«ãããã³ã³ãœãŒã«ã«{}
ããŸããïŒ
äžèšã®ãã¹ãŠãåœãŠã¯ãŸããäžèšã«ãªã³ã¯ãããããé©çšãããããŒãžã§ã³ã®lib/ldap/user.rb
ãã³ããŒããå ŽåãLDAPåæãããäžåºŠã»ããã¢ããããŠã¿ãŠãããã§ãåé¡ãçºçãããã©ãããæããŠãã ãããåãåé¡ïŒ
ãŸãã¯ã誀解ãããå Žåã¯ãç¶æ³ããç¥ãããã ããã
ããããšãã
@ rlue -JFIïŒ httpsïŒ //community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/5ã
è¿äºãé ããŠç³ãèš³ãããŸããã ã¯ãããã¹ãŠæ£ããã§ãã LDAPãå床æ§æããåŸãåããšã©ãŒãåã³çºçããŸããã
- @rlue @ E311ã¯ããã§ã«è¿°ã¹ãããã«ãŸã ããã«äœãééã£ãŠããïŒ https://community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/21
åèïŒåãåé¡ãçºçããããããé©çšãã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ãµãŒããŒã®ãŠãŒã¶ãŒå±æ§ã®ãµã³ãã«ãå«ãŸããŠãããããæ©å¯æ§ã®é«ããã®ãæå³ããå Žåã¯ãå
¬éããªãã§support @ zammad.comã«éä¿¡ããã©ã€ã¢ã³çšã§ããããšãäŒããŠ
ãã®ãã°ãåŠçããéãä»ãã°ãããåŸ ã¡ããã ããŸããããé¡ãããããŸãã
ããã«ã¡ã¯ã
æ°ããã¹ã¯ãªãããå®è¡ããããšãããšãããã衚瀺ãããŸãïŒ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ã«
ãšããã§ïŒLDAPæ§æïŒRAILS_ENV = production zammad run rails 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]ã«é»åã¡ãŒã«ã§éä¿¡ããŠ
ããã«ã¡ã¯ã
ãè¿äºããããšãããããŸãã
å®éãã³ã³ãã³ããã³ããŒãããšãã«ãããã€ãã®ã¢ã¯ã·ã§ã³ã«ãã£ãŠãã¡ã€ã«ãå€æŽãããããã§ãã
ç«ãšç¢ºèªãããšå°ãéã£ãŠèŠããŸãã
ã³ãã³ããè©Šããæ£ããåºåãåãåããŸããã
ãã¡ã€ã«ãzammadãµããŒãã«éä¿¡ããŸããã
ãã¡ããæ°ãããã¡ã€ã«ã§ã
2140_debug_log.txt
@hublux ãè¿ éãªãã£ãŒãããã¯ã«æ¹ããŠæè¬ããŸãã ãã®æ°ãããã¡ã€ã«ãå®å šã«æ£ãããªããããç§ãäœæãããããã°ã¹ã¯ãªããã«äœãåé¡ããããšæããŸãïŒæåã«éä¿¡ãã16kBã®ãããã°ãã°ãšæ¯èŒããŠã4kBã®å€ãã®ããŒã¿ãæ¬ èœããŠããŸãïŒã
ãã以æ¥ããããã°ã¹ã¯ãªããã«ããããé©çšããŠãïŒããŸãããã°ïŒ 2140_debug_log.txt
ãã¡ã€ã«ãããå
ç¢ã«ãããããã®å¥åŠãªãšã³ã³ãŒãã£ã³ã°ã®åé¡ãªãã«å®å
šã«éä¿¡ã§ããããã«ããŸããã ããäžåºŠããŠã³ããŒãããŠãããäžåºŠãè©Šããã ããã ïŒéœåããããã°ããã®ã¹ã¬ããã®è¿ä¿¡ã«èªç±ã«å«ããŠãã ãããïŒ
ããšããšã¯Rubyããã·ã¥ãåãããããããŒã·ã£ãªã³ã°ããŠãããããŒã·ã£ãªã³ã°ãããããŒã¿ããã€ããªïŒãšã³ã³ãŒãã£ã³ã°ãªãïŒã®ãããã¹ãããã¡ã€ã«ã«æžã蟌ã¿ãŸããã ãããã·ã³ããå¥ã®ãã·ã³ã«éä¿¡ãããšãã«ãã€ããªããã¹ããã¡ã€ã«ãç Žæããçç±ã¯æ¬åœã«ããããŸããããããã§èŠ³å¯ããŠããã®ã¯ããã§ãã
ãã®ä¿®æ£ã«ãããããŒã·ã£ãªã³ã°ãããããŒã¿ãååŸãããéåžžã®Unicodeããã¹ããã¡ã€ã«ã«ä¿åããåã«base-64ã§ãšã³ã³ãŒããããŸãã Unicodeãããæ®éçãªãã®ã¯äœãªã®ã§ãç Žæããããšãªãéä¿¡ããã®ãããå®å šã«ãªãã¯ãã§ãã
2140_debug_log.txt
æ°ããã¹ã¯ãªããã®åºåããããŸã
ããããïŒ
ããã«ã¡ã¯ãã¿ãªããã
åãåé¡ãç§ã«ã圱é¿ãäžããã®ã§ããã£ã€ã ã鳎ããŸã-æ°ããlib/ldap/user.rb
ã«æŽæ°ããåŸã§ã
ãŸãã ldap_config
ããã·ã¥ãå°ãæãäžããŠããã¹ãŠã®!binary
å
容ãåãé€ãå§ããŸããã ãããããããã®ãã¡4ã€ãæã£ãŠãããšããŠãããšã³ã³ãŒãã£ã³ã°ã«ãã蟌ãŸããã®ã¯2ã€ã ãã§ããããšãå€æããŸããã
usersmimecertificate
ãšmsexchmailboxsecuritydescriptor
ãåé€ããå¿
èŠããããŸããã
ä»ã®2ã€ã msexchmasteraccountsid
ãšsecurityprotocol
ã¯åé¡ãåŒãèµ·ãããŸããã§ããã
ããã«ã¡ã¯ã
æ確ã«ããããã«ãç§ã¯ããã«ã€ããŠèšåããŠãã人ãèŠãããšããªãã®ã§ããããæçœã§ãããã©ããã¯ããããŸããã
LDAPæ¥ç¶ãšããŠããã€ãèªãã·ã¹ãã èšèªãšããŠäœ¿çšããActiveDirectoryã䜿çšããŸãã ããã§ãæ°ããã·ã¹ãã ãšå¥ã®ãã¡ã€ã³ãã€ã³ã¹ããŒã«ããŸããã åé¡ãçºçãã以åã®ã·ã¹ãã ãšã®å¯äžã®éãã¯ãæ°ããã·ã¹ãã ã§ã¯ãèšèªããã€ãèªã§ã¯ãªãç±³åœè±èªã«èšå®ãããŠããããšã§ãã ãã®èšå®ã§ã¯ããšã©ãŒã¯æ€åºãããããã¹ãŠãæåŸ
ã©ããã«æ©èœããŸãã ããã§ãåé¡ãçºçããå
ã®zammadã·ã¹ãã ã䜿çšããŠãæ°ããã€ã³ã¹ããŒã«ãããã¡ã€ã³ã«æ¥ç¶ãããšãåé¡ã¯è§£æ±ºããŸããã
äœæ¥ã»ããã¢ããã§ä»¥äžãå®è¡ãããšã次ã®åºåãåŸãããŸãã
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"
ã³ãã³ããå®è¡ããŠå ã®ã»ããã¢ããã§LDAPæ§æã確èªãããšã倱æãã次ã®ãšã©ãŒãçºçããŸãã
ãããã圹ã«ç«ãŠã°å¹žãã§ãã
ããããïŒ
ããããšã@hubluxïŒ ãæèŠããå¯ãããã ããããããšãããããŸãã ãŸããªãdevelop
ããŒãžãããã¯ãã§ãïŒ
æŽæ°åŸãåããšã©ãŒãçºçããŸãã ïŒãã ããExchangeã»ããã¢ãããªããLDAPåæã®ã¿ïŒ
ããã«ã¡ã¯@tidet ããã£ãŒãããã¯ãããããšãã ãã®ã³ã¡ã³ãã®æ瀺ã«åŸã£ãŠãã ãã; ãµã³ãã«ããŒã¿ã¯ããã®åé¡ãæçµçã«è§£æ±ºããã®ã«å€§ãã«åœ¹ç«ã¡ãŸãã
ããã«ã¡ã¯ã
念ã®ããã«èšã£ãŠãããŸãããåãåé¡ãåã³çºçããŸããããå€ãæ§æã¯ãŸã ååšããŠããŸããã ãããã£ãŠããã®åé¡ãå床çºçããå Žåã¯ã次ã®ããã«é²ããŠãã ããã
次ã®ã³ãã³ãã䜿çšããŠãå€ãæ§æãåé€ããŸãã
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
zammadãµãŒãã¹ãåæ¢ããŸã
zammadãæŽæ°ãã
zammadãµãŒãã¹ãå床éå§ããLDAPæ¥ç¶ãåæ§æããŠã¿ãŠãã ãã
ãã®åŸãç§ã¯äœã®åé¡ã«ãçŽé¢ããŸããã§ããã
ãããã
@rlueäžèšã®è§£æ±ºçãè©Šããããããã°ç®çã§çŸåšã®ãšã©ãŒã®ãŸãŸã«ããå¿
èŠããããŸããïŒ
ãã°ãã¡ã€ã«ä»ãã®é»åã¡ãŒã«ãsupport @ã«éä¿¡ãããŸã
@tidet ããµã³ãã«LDAPããŒã¿ãã§ããã®ã§ãèªç±ã«äžèšãè©ŠããŠãã ããã ãšã«ããåé¡ãåŒãèµ·ããå¯èœæ§ã®ããå€ã1ã€èŠã€ããŸããããããããåé¡ãããŸããã ãããŠãäžèšã®æ瀺ãããªãã®ããã«ãããä¿®æ£ãããã©ããã«ãããããããã€ãã©ã€ã³ã«ä»æ¥é
ãã«æ¥ãå¥ã®ããããããã§ãããã
ç·šéïŒç§ã®èããå€ããŸããã ä¿®æ£ã¯ããªãã®ããã«åããŠããã®ã§ã誰ãã®ããã«å®éã«å£ãããŸã§ãã³ãŒããå€æŽããããäžå¿ èŠãªè€éããè¿œå ãããããããšã¯æ§ããŸãã
@hubluxFixãç§ã®ããã«åããã
@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ã®ããŒãžã§ã³ã確èªããŸããã
ããã¯ããªãã®ãã®ãšã¯ç°ãªããŸãã
次ã®æé ã«ããäžåºŠé²ãã§ãã ããã
ãããã
ç§ã®ããã«åãã@hublux ïŒ ããããšãïŒ
ä»ã®ãŠãŒã¶ãŒãæŽçããããã«ããªãã®ãã¹ãŠã®å©ããæ±ããŠ@hubluxã«å€§å£°ã§å«ãã§ãã ããã e07f41edã«ã¯ãé害ã®ããLDAPæ§æãèªåçã«ã¯ãªã¢ããããŒã¿ããŒã¹ç§»è¡ãå«ãŸããããã«ãªããŸãããããã«ãããå°æ¥ãã®åé¡ãçºçãããŠãŒã¶ãŒã¯ããããã®æåæé ã«å¯ŸåŠããå¿ èŠããªããªããŸãã
æãåèã«ãªãã³ã¡ã³ã
ããã«ã¡ã¯ã
念ã®ããã«èšã£ãŠãããŸãããåãåé¡ãåã³çºçããŸããããå€ãæ§æã¯ãŸã ååšããŠããŸããã ãããã£ãŠããã®åé¡ãå床çºçããå Žåã¯ã次ã®ããã«é²ããŠãã ããã
次ã®ã³ãã³ãã䜿çšããŠãå€ãæ§æãåé€ããŸãã
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
zammadãµãŒãã¹ãåæ¢ããŸã
zammadãæŽæ°ãã
zammadãµãŒãã¹ãå床éå§ããLDAPæ¥ç¶ãåæ§æããŠã¿ãŠãã ãã
ãã®åŸãç§ã¯äœã®åé¡ã«ãçŽé¢ããŸããã§ããã
ãããã