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. ์‹œ์Šคํ…œ์˜ log` ํŒŒ์ผ. ์ฃผ์˜ : ๊ธฐ๋ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค! -๋ฌธ์ œ๋ฅผ ์˜์–ด๋กœ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.-ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ฑฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ถ”๊ฐ€ ์˜๊ฒฌ์—†์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.-๋ฉ”์ผ ๋ง๋ฆฌ์ŠคํŠธ์—์„œ Zammad ๊ตฌ์„ฑ ๋ฐ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค. ์ฐธ์กฐ : https://zammad.org/participate ์ฐธ๊ณ  : ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ์ตœ์„ ์„ ๋‹คํ•ฉ๋‹ˆ๋‹ค. ์•ˆํƒ€๊น๊ฒŒ๋„ ๋•Œ๋กœ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ์š”์ฒญ์ด์žˆ์–ด ๋ชจ๋“  ๊ฒƒ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์—†์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ • / ์—์Šค์ปฌ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ์ง€์› ๊ณ„์•ฝ์„ ํ†ตํ•ด์ด๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (https://zammad.com/pricing#selfhosted ์ฐธ์กฐ). * ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๋ฉด ์ƒ๋‹จ ํ…์ŠคํŠธ ๋ธ”๋ก์ด ์ž๋™์œผ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. *

์ •๋ณด :

  • ์ค‘๊ณ  Zammad ๋ฒ„์ „ : 2.6.x
  • ์„ค์น˜ ๋ฐฉ๋ฒ• (์†Œ์Šค, ํŒจํ‚ค์ง€, ..) : DEP
  • ์šด์˜ ์ฒด์ œ : ์šฐ๋ถ„ํˆฌ 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
*
StatusCode 500
{ "error": "\"\ 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- ๋กœ๊ทธ์˜ ์œ—๋ถ€๋ถ„๋„ ์ œ๊ณตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์ธ์‡„๋˜๊ณ  ํ˜„์žฌ ๋ˆ„๋ฝ ๋œ ๊ณณ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ : ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ ํ•œ ๋‹จ๊ณ„๋ฅผ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ํ˜„์žฌ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ ํ•  ๊ฒƒ์ด๋‹ค.
(๊ด€๋ฆฌ์ž-> ์‹œ์Šคํ…œ-> Integarion์—์„œ) LDAP๋ฅผ ์—ฝ๋‹ˆ ๋‹ค. ๊ตฌ์„ฑ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
๋„๋ฉ”์ธ DN ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ.
3 ldap

ํ‘œ์ค€ ๋งคํ•‘์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
4

LDAP ๊ตฌ์„ฑ ํ™”๋ฉด์ด ์ž˜ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
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 ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ ์ค„์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ์˜์‹ฌ์ด ์˜ฌ ๋ฐ”๋ฅด๋ฉด ์‹คํŒจํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (_ ์ฆ‰, _ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์—ญ ์ถ”์  ํ‘œ์‹œ).

$ 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]์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์ด๊ฒƒ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์ฆ‰์‹œ ์ˆ˜์ •์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋„์›€์— ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ ์ฒซ ๋ฒˆ์งธ ์•ˆ๋งˆ์ž…๋‹ˆ๋‹ค

serveradmin @ support : / opt / zammad $ rails r "puts 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: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 ': ํ•ด๋‹น ํŒŒ์ผ์„๋กœ๋“œ ํ•  ์ˆ˜ ์—†์Œ-bundler / setup (LoadError)

Gesendet : Montag, 2018 ๋…„ 8 ์›” 6 ์ผ um 11:53 Uhr
ํฐ : "Ryan Lue" [email protected]
๋‹ต๋ณ€ : zammad / zammad [email protected]
์ฐธ์กฐ : e311 [email protected] , Mention [email protected]
Betreff : Re : [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]์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค

์ด๊ฒƒ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์ฆ‰์‹œ ์ˆ˜์ •์„ ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋„์›€์— ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ 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 ์ถœ๋ ฅ์ด์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ldap-config ์ถœ๋ ฅ์„ ๋ณด๋‚ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด์ œ ํ•˜๋ฃจ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์™„์ „ํžˆ ๋กœ๊ทธ๋ฅผ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ๋†“์ณค๋Š” ์ง€ ๋ชฐ๋ผ!

@ e311 , ๋””๋ฒ„๊ทธ ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์˜ˆ์ƒํ–ˆ๋˜ ๋‚ด์šฉ์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ @MrGeneration ์ด zammad run rails r ... ๋ช…๋ น์ด ์ž‘๋™ํ•˜๋„๋ก ๋„์™€ ์ค„ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ณ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” Encoding::UndefinedConversionError ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

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

"๋ฃจ๋น„ ๋ฒ„์ „์€ 2.5.1์ด์ง€๋งŒ Gemfile์€ 2.4.4๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค."๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ž‘๋™ํ•˜์ง€ ์•Š์•„์„œ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค (๊ตฌ๊ธ€์ด ๋‚˜์—๊ฒŒ ๋งํ•˜๋Š” ๋ชจ๋“  ์ƒ๊ฐ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค)

Ruby ๋ฐ Elasticsearch ๋ฒ„์ „์€ Zammad์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Ruby 2.4.4 ๋ฐ Elasticsearch๋ฅผ ์ตœ๋Œ€ 5.6๊นŒ์ง€ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

@ e311 ์‹ค์ œ๋กœ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค, ์™„์ „ํžˆ ๋‚ด ์ž˜๋ชป์ž…๋‹ˆ๋‹ค. zammad r ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค. -_- '

๋‚ด๋ง์€

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

๊ฑฐ๊ธฐ์— ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Neues Textdokument (3) .txt

๋”ฐ๋ผ์„œ ๋งˆ์ง€๋ง‰ ๋ช…๋ น์˜ ์ถœ๋ ฅ์€ ์ •ํ™•ํžˆ ๋‚ด๊ฐ€ ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”์•ฝํ•˜๋ฉด LDAP ์„œ๋ฒ„์˜ ์ผ๋ถ€ ์‚ฌ์šฉ์ž ์†์„ฑ์— ์ด์ง„ ๋ฐ์ดํ„ฐ ๊ฐ’์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Zammad๋Š” ์ด๊ฒƒ์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ•œ ๋‹ค์Œ ๋ฐฑ์—”๋“œ์—์„œ ํ”„๋ŸฐํŠธ ์—”๋“œ๋กœ ์ „๋‹ฌํ•˜๋ ค๊ณ ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€ ์ธ์ฝ”๋”ฉ / ๋ณ€ํ™˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก , ๋‚˜๋Š” ๋‹น์‹ ์˜ LDAP ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์ด ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ์‹œ๋„ ํ•  ๋•Œ๊นŒ์ง€ ์ˆ˜์ •์ด ์ž‘๋™ ํ•  ๊ฒƒ์ด๋ผ๊ณ  100 % ํ™•์‹  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‘ ๊ฐ€์ง€ ๋” ๋งŽ์€ ์ ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ๋ถ„์˜ ๋„์›€์„ ์š”์ฒญํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  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 ๋ฅผ

    screenshot_20180814_201507

2 ๋‹จ๊ณ„๋Š” ์—ฌ์ „ํžˆ ๋‹น์‹ ์„ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์‹œ 1 ๋‹จ๊ณ„์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ๋‘ ํŒŒ์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

๊ท€ํ•˜์˜ ๋„์›€๊ณผ ์ธ๋‚ด์‹ฌ์— ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

ํ™€ ์‹œ์Šคํ…œ์„ ์žฌ๋ถ€ํŒ…ํ–ˆ๋Š”๋ฐ ๋ณ€๊ฒฝ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

image

ํŒจ์น˜๋ฅผ ์œ„ํ•ด
2140_bug_report (Step1) .txt

ํŒจ์น˜ ํ›„
2140_bug_report (2 ๋‹จ๊ณ„) .txt

i ๋˜ํ•œ ์ƒˆ LDAP ๊ตฌ์„ฑ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. LDAP conf๋ฅผ ์œ„ํ•ด ์‹œ์Šคํ…œ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ธฐ๋Šฅ ์ˆ˜์ค€์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. 2003 ๋…„์ด ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

ํ™€ ์‹œ์Šคํ…œ์„ ์žฌ๋ถ€ํŒ…ํ–ˆ๋Š”๋ฐ ๋ณ€๊ฒฝ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ๋ช…ํ™•ํžˆ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์›๋ž˜ ๋ฌธ์ œ์˜ ๋ฒ”์œ„๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

i ๋˜ํ•œ ์ƒˆ LDAP ๊ตฌ์„ฑ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. LDAP conf๋ฅผ ์œ„ํ•ด ์‹œ์Šคํ…œ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

LDAP conf ์ด์ „์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋ณต์›ํ•˜๊ณ  ์ „์ฒด ๋งˆ๋ฒ•์‚ฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ๋˜๋Š” LDAP conf ์ด์ „์— ์‹œ์Šคํ…œ์„ ๋ณต์›ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋งˆ๋ฒ•์‚ฌ์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๊นŒ?

์ „์ž๋ผ๋ฉด ํŒจ์น˜๋Š” ์—ฌ์ „ํžˆ ์•ฝ๊ฐ„์˜ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์ผ ๋‹น์‹ ์„์œ„ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ›„์ž์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ LDAP ๊ตฌ์„ฑ์„ ์žฌ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

(๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ RAILS_ENV=production ๋ถ€๋ถ„์„ โ€‹โ€‹์ƒ๋žต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋ฐฑ์—…์„ ๋ณต์›ํ–ˆ์Šต๋‹ˆ๋‹ค. LDAP ๊ตฌ์„ฑ์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋ฐฑ์—…์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” LDAP ์ฝ˜์„ ์žฌ์„ค์ •ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
๋‚˜๋Š” conf๋ฅผ "์žฌ์„ค์ •"ํ•˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ด์ œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์—†์ด ์ „์ฒด ์‹œ์Šคํ…œ์ด ์‹คํ–‰์ค‘์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

(LDAP ์ œ์™ธ)

์ข‹์•„์š”, ๋‹น์‹ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž  ๋งˆ๋“œ๊ฐ€ ์ผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ˜„์žฌ LDAP ๋™๊ธฐํ™”๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. 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 ์„œ๋ฒ„์˜ ์‚ฌ์šฉ์ž ์†์„ฑ ์ƒ˜ํ”Œ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ์˜๋ฏธ ํ•  ์ˆ˜์žˆ๋Š” ๊ฒฝ์šฐ ๊ณต๊ฐœ์ ์œผ๋กœ ๊ฒŒ์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค . ๋Œ€์‹  [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$

production.log

๋˜ํ•œ์ด ldap ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ... (repo๋ฅผ ํ†ตํ•œ ์šฐ๋ถ„ํˆฌ 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 , no 2140_improved_bug_report.rb in / opt / zammad

btw : 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]์œผ๋กœ ํŒŒ์ผ์„ ์ด๋ฉ”์ผ๋กœ .

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‹น์‹ ์˜ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณต์‚ฌํ–ˆ์„ ๋•Œ ์ผ๋ถ€ ์ž‘์—…์œผ๋กœ ์ธํ•ด ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ณ ์–‘์ด์™€ ํ•จ๊ป˜ ํ™•์ธํ•˜๋ฉด ์กฐ๊ธˆ ๋‹ฌ๋ผ ๋ณด์ž…๋‹ˆ๋‹ค.

grafik

๋ช…๋ น์„ ์‹œ๋„ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์ถœ๋ ฅ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
grafik
zammad ์ง€์›ํŒ€์— ํŒŒ์ผ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์ƒˆ ํŒŒ์ผ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
2140_debug_log.txt

@hublux , ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์— ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ์ƒˆ ํŒŒ์ผ๋„ ์˜ณ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋””๋ฒ„๊ทธ ์Šคํฌ๋ฆฝํŠธ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (์›๋ž˜ ๋ณด๋‚ธ 16kB ๋””๋ฒ„๊ทธ ๋กœ๊ทธ์— ๋น„ํ•ด ๋งŽ์€ ๋ฐ์ดํ„ฐ โ€” 4kB๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

๋‚˜๋Š” ์ดํ›„๋กœ ๋””๋ฒ„๊ทธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํŒจ์น˜ํ•˜์—ฌ 2140_debug_log.txt ํŒŒ์ผ์„ ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์ด๋Ÿฌํ•œ ์ด์ƒํ•œ ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ์—†์ด ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ๋” ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. (๋” ํŽธ๋ฆฌํ•˜๋‹ค๋ฉด์ด ์Šค๋ ˆ๋“œ์˜ ๋‹ต์žฅ์— ์ž์œ ๋กญ๊ฒŒ ํฌํ•จ ์‹œํ‚ค์‹ญ์‹œ์˜ค.)

๊ทธ๋ฆฌ๊ณ  ๋””๋ฒ„๊ทธ ์Šคํฌ๋ฆฝํŠธ์— ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์ •๋ง ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ...

๊ทธ๊ฒƒ์€ ์›๋ž˜, ๋ฃจ๋น„ ํ•ด์‹œ๋ฅผํ–ˆ๋‹ค ๊ทธ๊ฒƒ์„ ์ •๋ ฌ ํ™” ํ•˜๊ณ  (์ธ์ฝ”๋”ฉ-์ดํ•˜) 'ํ…์ŠคํŠธ'ํŒŒ์ผ์„ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์ •๋ ฌ ํ™” ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋‹ค. ์ด์ง„ ํ…์ŠคํŠธ ํŒŒ์ผ์ด ํ•œ ์ปดํ“จํ„ฐ์—์„œ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ์ „์†ก ๋  ๋•Œ ์™œ ์†์ƒ๋˜๋Š”์ง€ ์ •๋ง ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ์„œ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์ˆ˜์ •์€ ๋งˆ์ƒฌ๋ง ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ ์™€์„œ ์ผ๋ฐ˜ ์œ ๋‹ˆ ์ฝ”๋“œ ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ธฐ ์ „์— base-64๋กœ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹ˆ ์ฝ”๋“œ๋ณด๋‹ค ๋ณดํŽธ์  ์ธ ๊ฒƒ์ด ๋ฌด์—‡์ผ๊นŒ์š”?

2140_debug_log.txt
์ƒˆ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ ๋œ ์ถœ๋ ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌธ์•ˆ ์ธ์‚ฌ!

์•ˆ๋…• ๋ชจ๋‘๋“ค,
๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋‚˜์—๊ฒŒ๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด lib/ldap/user.rb ์—…๋ฐ์ดํŠธ ํ•œ ํ›„์—๋„

2140_debug_log.txt

๋‚˜๋Š” ๋˜ํ•œ ldap_config -hash์—์„œ ์•ฝ๊ฐ„ ํŒŒ๊ณ  ๋“ค๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋ชจ๋“  !binary ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜์ด ์ค‘ 4 ๊ฐœ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ธ์ฝ”๋”ฉ์— 2 ๊ฐœ๋งŒ ๋ง๊ฐ€ ์กŒ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

usersmimecertificate ๋ฐ msexchmailboxsecuritydescriptor .

๋‹ค๋ฅธ ๋‘ ๊ฐœ, msexchmasteraccountsid ๋ฐ securityprotocol ๋Š” ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,

๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ฌด๋„ ์ด๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋ช…๋ฐฑํ•œ ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
LDAP ์—ฐ๊ฒฐ๋กœ Active Directory๋ฅผ ๋…์ผ์–ด๋กœ Systemlanguage๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒˆ ์‹œ์Šคํ…œ๊ณผ ๋ณ„๋„์˜ ๋„๋ฉ”์ธ์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์ „ ์‹œ์Šคํ…œ๊ณผ์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ์ƒˆ ์‹œ์Šคํ…œ์—์„œ ์–ธ์–ด๊ฐ€ ๋…์ผ์–ด ๋Œ€์‹  ๋ฏธ๊ตญ ์˜์–ด๋กœ ์„ค์ •๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ์›๋ž˜ zammad ์‹œ์Šคํ…œ์„ ์ƒˆ๋กœ ์„ค์น˜ ํ•œ ๋„๋ฉ”์ธ๊ณผ ์—ฐ๊ฒฐํ–ˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

์ž‘์—… ์„ค์ •์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ถœ๋ ฅ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

workingsetup.txt

๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์›๋ž˜ ์„ค์ •์œผ๋กœ ldap ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๋ฉด ์‹คํŒจํ•˜๊ณ  ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

grafik

์ด๊ฒƒ์ด ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๋ฌธ์•ˆ ์ธ์‚ฌ!

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @hublux! ๊ท€ํ•˜์˜ ์˜๊ฒฌ ๋•๋ถ„์— ์ž‘์—…์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณง develop ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค!

screenshot_1

์—…๋ฐ์ดํŠธ ํ›„์—๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ Exchange ์„ค์ •์—†์ด LDAP ๋™๊ธฐํ™” ๋งŒ)

์•ˆ๋…•ํ•˜์„ธ์š” @tidet , ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ์˜๊ฒฌ ์˜ ์ง€์‹œ๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค. ๊ท€ํ•˜์˜ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋Š”์ด ๋ฌธ์ œ๋ฅผ ๊ฒฐ์ •์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‹ค์‹œ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์ด์ „ ๊ตฌ์„ฑ์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด. ์ด ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๊ตฌ์„ฑ์„ ์‚ญ์ œํ•˜์‹ญ์‹œ์˜ค.
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • zammad ์„œ๋น„์Šค ์ค‘์ง€

  • zammad ์—…๋ฐ์ดํŠธ

  • zammad ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ldap ์—ฐ๊ฒฐ์„ ๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค.

๊ทธ ํ›„ ๋‚˜๋Š” ์–ด๋–ค ๋ฌธ์ œ๋„ ์ง๋ฉดํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ

@rlue ์œ„์˜ ํ•ด๊ฒฐ์ฑ…์„ ์‹œ๋„ํ•˜๊ฑฐ๋‚˜ ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ ํ˜„์žฌ ์˜ค๋ฅ˜๋ฅผ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?
๋กœ๊ทธ ํŒŒ์ผ์ด ํฌํ•จ ๋œ ์ด๋ฉ”์ผ์ด support @์—๊ฒŒ ๋ฐœ์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@tidet , ์ด์ œ ์ƒ˜ํ”Œ LDAP ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์œ„์˜ ์ž‘์—…์„ ์‹œ๋„ํ•ด๋ณด์‹ญ์‹œ์˜ค. ์–ด์จŒ๋“  ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜์žˆ๋Š” ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ฐพ์•˜์ง€๋งŒ ์•„๋งˆ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์ง€์นจ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋“  ๊ทธ๋ ‡์ง€ ์•Š๋“ , ์˜ค๋Š˜ ๋Šฆ๊ฒŒ ํŒŒ์ดํ”„ ๋ผ์ธ์— ๋˜ ๋‹ค๋ฅธ ํŒจ์น˜๊ฐ€์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋‚ด ๋งˆ์Œ์„ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์‹ค์ œ๋กœ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์œ„ํ•ด ์†์ƒ ๋  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ž์ œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@hublux Fix๋„ ์ €์—๊ฒŒ

@hublux๋„ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” @hublux๊ฐ€ ์ž‘์„ฑํ•˜๊ณ , ๊ตฌ์„ฑ์„ ์‚ญ์ œํ•˜๊ณ , zammad (2.6.0-1534939663.6d23dae9.stretch now)๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ , 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 ๋“ฑ๊ธ‰