Пользователи AD_Serverver 2008 + Русская кодировка

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 05 ноя 2013, 15:28

Доброго времени суток.
Решил установить у нас в организации OTRS, все вроде бы замечательно, кроме одного но...
Пользователи логинятся, оставляют заявки, вот только в именах пользователе из AD вместо русских букв пишутся "Александра Федоровна ПÐ" вот такие интересные штуки, перечитал кучу форумов, не могу найти решения.
Пользователи которых я завожу в ручную, русские буквы воображаются корректно.
Может кто сталкивался, сможет помочь?
У меня настроено на Debian7 + OTRS 3.2.11

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение alexus » 05 ноя 2013, 19:43

Обратите внимание на блок

Код: Выделить всё

# if your frontend is unicode and the charset of your
# customer database server is iso-8859-1, use these options.
#           SourceCharset => 'iso-8859-1',
#           DestCharset => 'utf-8',
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 05 ноя 2013, 19:57

alexus писал(а):Обратите внимание на блок

Код: Выделить всё

# if your frontend is unicode and the charset of your
# customer database server is iso-8859-1, use these options.
#           SourceCharset => 'iso-8859-1',
#           DestCharset => 'utf-8',
У меня в базе все таблицы в UTF-8 кодировке, но я все равно попробовал, раскоментировал строки, перезагрузил апач, не помогло...
Или я что-то не то сделал?

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение alexus » 06 ноя 2013, 00:42

При чем тут база, если данные берутся из AD? В AD какая кодировка?
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

exepwnz
OTRS Новобранец
Сообщения: 30
Зарегистрирован: 15 окт 2013, 10:45

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение exepwnz » 06 ноя 2013, 16:22

в config.pm


use strict;
use warnings;
use utf8;

и


$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';

и будет всё ок.

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 07 ноя 2013, 07:22

exepwnz писал(а):в config.pm


use strict;
use warnings;
use utf8;

и


$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';

и будет всё ок.
Это у меня было прописано...
use strict;
use warnings;
use utf8;

другое добавил и у меня получилось...
$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';
$Self->{CustomerUser} = {
Name => 'AD',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'dc.xxx.yyy.ru',
BaseDN => 'ou=zzz,dc=xxx,dc=yyy,dc=ru',
SSCOPE => 'sub',
UserDN => 'CN=otrs,OU=users,DC=xxx,DC=yyy,DC=ru',
UserPw => 'otrspassword',
},
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
AlwayFilter => '',
CustomerKey => 'sAMAccountName',
CustomerID => 'sAMAccountName',
CustomerUserListFields => ['sAMAccountName', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 10000,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
.......

Не помогло(((

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 07 ноя 2013, 07:29

alexus писал(а):При чем тут база, если данные берутся из AD? В AD какая кодировка?
Alexus, я думаю UTF8, в гугле не нашел, как можно посмотреть, может подскажешь, как узнать кодировку в АД?

exepwnz
OTRS Новобранец
Сообщения: 30
Зарегистрирован: 15 окт 2013, 10:45

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение exepwnz » 07 ноя 2013, 10:37

AndreevAE87 писал(а):
exepwnz писал(а):в config.pm


use strict;
use warnings;
use utf8;

и


$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';

и будет всё ок.
Это у меня было прописано...
use strict;
use warnings;
use utf8;

другое добавил и у меня получилось...
$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';
$Self->{CustomerUser} = {
Name => 'AD',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'dc.xxx.yyy.ru',
BaseDN => 'ou=zzz,dc=xxx,dc=yyy,dc=ru',
SSCOPE => 'sub',
UserDN => 'CN=otrs,OU=users,DC=xxx,DC=yyy,DC=ru',
UserPw => 'otrspassword',
},
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
AlwayFilter => '',
CustomerKey => 'sAMAccountName',
CustomerID => 'sAMAccountName',
CustomerUserListFields => ['sAMAccountName', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserSearchPrefix => '',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 10000,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
.......

Не помогло(((




AlwaysFilter => '(objectclass=user)',
# SourceCharset => 'utf-8',
# DestCharset => 'iso-8859-1',

Die => 1,
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
Params => {
# port => 389,
# timeout => 120,
# async => 0,
# version => 3,
raw => qr/(?i:^jpegPhoto|;binary)/,
},
},

Попробуйте так
Вот мой кусок кода. SourceCharset и DestCharset не включены вообще :)


P.S. Копать в сторону кодировки AD вообще не вижу смысла,кто ж меняет там кодировку с utf8? :D

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 07 ноя 2013, 11:09

exepwnz, вы не могли бы мне показать весь конфиг Config.pm ?

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 07 ноя 2013, 11:09

exepwnz, вы не могли бы мне показать весь конфиг Config.pm

exepwnz
OTRS Новобранец
Сообщения: 30
Зарегистрирован: 15 окт 2013, 10:45

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение exepwnz » 07 ноя 2013, 11:27

$Self->{'SystemID'} = 10;
$Self->{'SecureMode'} = 1;
$Self->{'Organization'} = '';
$Self->{'LogModule'} = 'Kernel::System::Log::File';
$Self->{'FQDN'} = '';
$Self->{'DefaultLanguage'} = 'ru';
$Self->{'AdminEmail'} = '';
$Self->{'DefaultCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::SourceCharset'} = 'utf-8';
$Self->{'Customer::AuthModule::LDAP::DestCharset'} = 'utf-8';

# CustomerUser




$Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
$Self->{'Customer::AuthModule::LDAP::Host'} ='';
$Self->{'Customer::AuthModule::LDAP::BaseDN'} = '';
$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = ';
$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = '';
$Self->{CustomerUser} = {
Name => 'LDAP Backend',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => '',
BaseDN => 'dc=',
SSCOPE => 'sub',
UserDN => '',
UserPw => '',
AlwaysFilter => '(objectclass=user)',
# SourceCharset => 'utf-8',
# DestCharset => 'iso-8859-1',
Die => 1,
# Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
Params => {
# port => 389,
# timeout => 120,
# async => 0,
# version => 3,
raw => qr/(?i:^jpegPhoto|;binary)/,
},
},
CustomerKey => 'sAMAccountName',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
CustomerUserSearchFields => ['sAMAccountName', 'cn', 'mail'],
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
Map => [
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var' ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var' ],
[ 'UserLogin', 'Login', 'sAMAccountName', 1, 1, 'var' ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var' ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var' ],
[ 'physicalDeliveryOfficeName', 'Площадка', 'physicalDeliveryOfficeName', 0, 1, 'var' ],
[ 'UserMobile', 'MOBILE', 'mobile', 0, 1, 'var' ],
[ 'Telephone', 'Telephone', 'telephoneNumber', 0, 1, 'var' ],
[ 'description', 'Должность', 'description', 0, 1, 'var' ],
],

};

ykolesnikov
OTRS Гуру
Сообщения: 3119
Зарегистрирован: 24 дек 2010, 09:27
Откуда: Череповец
Благодарил (а): 4 раза
Поблагодарили: 5 раз
Контактная информация:

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение ykolesnikov » 07 ноя 2013, 13:09

# if your frontend is unicode and the charset of your
# customer database server is iso-8859-1, use these options.
# SourceCharset => 'iso-8859-1',
# DestCharset => 'utf-8',
Есть такой комментарий в Config.pm
Реально у меня стоит для LDAP:

Код: Выделить всё

    #Пользовательский бэкенд LDAP#
    $Self->{CustomerUser2} = {

    #Имя бэкенда
    Name => 'Active Directory',
    Module => 'Kernel::System::CustomerUser::LDAP',
    Params => {
    #Имя контроллера домена
    Host => 'dcssm01.XXX.CCC',
    #Где расположены клиенты
    BaseDN => 'DC=XXX,DC=CCC',
    SSCOPE => 'sub',
    #!!UserDN => 'cn=otrsadmin,ou=admingroup,dc=metalcandy,dc=ru',
    UserDN => 'CN=otrsadmin,CN=Users,DC=XXX,DC=CCC',
    UserPw => 'ZZZZZ',
    #Фильтр
    AlwaysFilter => '(&(objectcategory=person)(objectclass=user)(mail=*)(!(description=built-In))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))',
    SourceCharset => 'utf-8',
    DestCharset   => 'utf-8',
        },

    ReadOnly => 1,
    ####!!!CustomerKey => 'sAMAccountName',
    CustomerKey => 'userPrincipalName',
#    CustomerID => 'mail',
    CustomerID => 'company',
    CustomerUserListFields => ['sn' ,'givenName', 'company' , 'mail'],
    ####!!CustomerUserSearchFields => ['displayName','sAMAccountName','givenName', 'sn', 'mail','description'],
    CustomerUserSearchFields => ['displayName','userPrincipalName','givenName', 'sn', 'mail','company' ,'description'],
    CustomerUserSearchPrefix => '*',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 700,
    ####!!!CustomerUserPostMasterSearchFields => ['displayName','sAMAccountName','givenName','sn','mail','description'],
    CustomerUserPostMasterSearchFields => ['displayName','userPrincipalName','givenName','sn','mail','description'],
    CustomerUserNameFields => ['givenname', 'sn'],
    CustomerUserExcludePrimaryCustomerID => 0,
    CacheTTL => 120,
Сразу скажу, что сам не админ и пояснить особо не могу
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 07 ноя 2013, 14:29

exepwnz, спасибо, теперь у меня все по русски, все замечательно, не считая одного но :)
Я сперва скопировал весь твой конфиг и в административной панели увидел, что имена всех юзеров у меня написаны по русски, но радость моя была не долгой, при попытке войти в пользовательскую панель www/customer.pl, после ввода имени пользователя и пароля, выскакивает вот такая вот ошибка

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

Опытным путем выяснил, что за русские буквы отвечают вот эти строчи, правда не понимаю что они означают...

Код: Выделить всё

Params => {
# port => 389,
# timeout => 120,
# async => 0,
# version => 3,
raw => qr/(?i:^jpegPhoto|;binary)/,
},
Вернул обратно свой конфиг, проверил, все под юзерами можно зайти, прописал те параметры для нормального отображения русских букв, все в админ панели все замечательно, но в пользовательской панели снова эта ошибка

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

а в логе
Nov 7 17:22:09 otrs OTRS-CGI-10[4399]: [Notice][Kernel::System::CustomerAuth::LDAP::Auth] CustomerUser: ae.andreev (CN=Ð^ÐндÑ^Àеев Ð^ÐлекÑ^ÁандÑ^$Ñ^À Ð^ÕвгенÑ^ÌевиÑ^Ç,OU=Users,OU=SH4,DC=domain,DC=ru) authentication ok (REMOTE_ADDR: 192.168.4.254)

AndreevAE87
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 05 ноя 2013, 15:19

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение AndreevAE87 » 07 ноя 2013, 15:00

Всем большое спасибо, проблема решена, мой конфиг был верный, кроме одно скобочки

Код: Выделить всё

Params => {
Host => 'dc.xxx.yyy.ru',
BaseDN => 'ou=zzz,dc=xxx,dc=yyy,dc=ru',
SSCOPE => 'sub',
UserDN => 'CN=otrs,OU=users,DC=xxx,DC=yyy,DC=ru',
UserPw => 'otrspassword',
#}, - было тут
SourceCharset => 'utf-8',
DestCharset => 'utf-8',
}, #-переместил сюда
3 дня убил)))))
Еще раз все огромное спасибо за отклик.

ТЕМА ЗАКРЫТА

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Пользователи AD_Serverver 2008 + Русская кодировка

Сообщение alexus » 07 ноя 2013, 17:40

Все конфиги пишутся в синтаксисе Perl. Попробуйте убрать "лишнюю" запятую - получите Internal Server Error. Надо следить за всеми запятыми, скобками.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Ответить