
These patches convert also users in Joomla password form:
-------------------------------------------------------------------------------------
diff -c /opt/otrs/Kernel/System/User.pm.orig /opt/otrs/Kernel/System/User.pm
------------------------------------------------
*** /opt/otrs/Kernel/System/User.pm.orig 2010-07-10 19:53:42.034580633 -0300
--- /opt/otrs/Kernel/System/User.pm 2010-07-10 19:57:26.201369700 -0300
***************
*** 15,21 ****
use warnings;
use Crypt::PasswdMD5 qw(unix_md5_crypt);
!
use Kernel::System::CheckItem;
use Kernel::System::Valid;
--- 15,21 ----
use warnings;
use Crypt::PasswdMD5 qw(unix_md5_crypt);
! use Digest::MD5 qw(md5_hex);
use Kernel::System::CheckItem;
use Kernel::System::Valid;
***************
*** 616,627 ****
# crypt with md5
else {
!
# encode output, needed by unix_md5_crypt() only non utf8 signs
$Self->{EncodeObject}->EncodeOutput( \$Pw );
! $Self->{EncodeObject}->EncodeOutput( \$Param{UserLogin} );
! $CryptedPw = unix_md5_crypt( $Pw, $Param{UserLogin} );
}
# md5 sum of pw, needed for password history
--- 616,629 ----
# crypt with md5
else {
! my $Salt = md5_hex(rand());
# encode output, needed by unix_md5_crypt() only non utf8 signs
$Self->{EncodeObject}->EncodeOutput( \$Pw );
! #$Self->{EncodeObject}->EncodeOutput( \$Param{UserLogin} );
! $Self->{EncodeObject}->EncodeOutput( \$Salt );
! #$CryptedPw = unix_md5_crypt( $Pw, $Param{UserLogin} );
! $CryptedPw = md5_hex($Pw.$Salt).":".$Salt;
}
# md5 sum of pw, needed for password history
----------------------------------------------------------------------------------
diff -c /opt/otrs/Kernel/System/Auth/DB.pm.orig
/opt/otrs/Kernel/System/Auth/DB.pm
-----------------------------------
*** /opt/otrs/Kernel/System/Auth/DB.pm.orig 2010-07-10 19:53:50.634576892 -0300
--- /opt/otrs/Kernel/System/Auth/DB.pm 2010-07-10 20:03:23.920604245 -0300
***************
*** 15,21 ****
use warnings;
use Crypt::PasswdMD5 qw(unix_md5_crypt);
!
use Kernel::System::Valid;
use vars qw($VERSION);
--- 15,21 ----
use warnings;
use Crypt::PasswdMD5 qw(unix_md5_crypt);
! use Digest::MD5 qw(md5_hex);
use Kernel::System::Valid;
use vars qw($VERSION);
***************
*** 112,144 ****
elsif ( $GetPw !~ /^.{13}$/ ) {
# strip Salt
! $Salt =~ s/^\$.+?\$(.+?)\$.*$/$1/;
# encode output, needed by unix_md5_crypt() only non utf8 signs
$Self->{EncodeObject}->EncodeOutput( \$Pw );
$Self->{EncodeObject}->EncodeOutput( \$Salt );
! $CryptedPw = unix_md5_crypt( $Pw, $Salt );
}
# crypt pw
else {
# strip Salt only for (Extended) DES, not for any of Modular crypt's
! if ( $Salt !~ /^\$\d\$/ ) {
! $Salt =~ s/^(..).*/$1/;
! }
# and do this check only in such case (unfortunately there
is a mod_perl2
# bug on RH8 - check if crypt() is working correctly) :-/
! if ( ( $Salt =~ /^\$\d\$/ ) || ( crypt( 'root',
'root@localhost' ) eq 'roK20XGbWEsSM' ) ) {
# encode output, needed by crypt() only non utf8 signs
! $Self->{EncodeObject}->EncodeOutput( \$Pw );
! $Self->{EncodeObject}->EncodeOutput( \$Salt );
! $CryptedPw = crypt( $Pw, $Salt );
! }
! else {
$Self->{LogObject}->Log(
Priority => 'notice',
Message =>
--- 112,146 ----
elsif ( $GetPw !~ /^.{13}$/ ) {
# strip Salt
! #$Salt =~ s/^\$.+?\$(.+?)\$.*$/$1/;
! $Salt =~ s/^.*:/$1/;
# encode output, needed by unix_md5_crypt() only non utf8 signs
$Self->{EncodeObject}->EncodeOutput( \$Pw );
$Self->{EncodeObject}->EncodeOutput( \$Salt );
! #$CryptedPw = unix_md5_crypt( $Pw, $Salt );
! $CryptedPw = md5_hex($Pw.$Salt).":".$Salt;
}
# crypt pw
else {
# strip Salt only for (Extended) DES, not for any of Modular crypt's
! #if ( $Salt !~ /^\$\d\$/ ) {
! # $Salt =~ s/^(..).*/$1/;
! #}
# and do this check only in such case (unfortunately there
is a mod_perl2
# bug on RH8 - check if crypt() is working correctly) :-/
! #if ( ( $Salt =~ /^\$\d\$/ ) || ( crypt( 'root',
'root@localhost' ) eq 'roK20XGbWEsSM' ) ) {
# encode output, needed by crypt() only non utf8 signs
! #$Self->{EncodeObject}->EncodeOutput( \$Pw );
! #$Self->{EncodeObject}->EncodeOutput( \$Salt );
! #$CryptedPw = crypt( $Pw, $Salt );
! #}
! #else {
$Self->{LogObject}->Log(
Priority => 'notice',
Message =>
***************
*** 153,159 ****
}
close(IO);
chomp $CryptedPw;
! }
}
# just in case for debug!
--- 155,161 ----
}
close(IO);
chomp $CryptedPw;
! #}
}
# just in case for debug!
-----------------------------------------------------------------------------------
diff -c /opt/otrs/scripts/database/otrs-initial_insert.mysql.sql.orig
/opt/otrs/scripts/database/otrs-initial_insert.mysql.sql
---------------------------------
*** /opt/otrs/scripts/database/otrs-initial_insert.mysql.sql.orig 2010-02-05
20:42:17.000000000 -0300
--- /opt/otrs/scripts/database/otrs-initial_insert.mysql.sql 2010-07-10
20:05:58.569580719 -0300
***************
*** 24,30 ****
# ----------------------------------------------------------
INSERT INTO users (id, first_name, last_name, login, pw, valid_id,
create_by, create_time, change_by, change_time)
VALUES
! (1, 'Admin', 'OTRS', 'root@localhost', 'roK20XGbWEsSM', 1, 1,
current_timestamp, 1, current_timestamp);
# ----------------------------------------------------------
# insert into table groups
# ----------------------------------------------------------
--- 24,30 ----
# ----------------------------------------------------------
INSERT INTO users (id, first_name, last_name, login, pw, valid_id,
create_by, create_time, change_by, change_time)
VALUES
! (1, 'Admin', 'OTRS', 'root@localhost',
'73876873b6e0c23bc90b24227f7784e5:ff10491742010de973a1a11737a6ed0c',
1, 1, current_timestamp, 1, current_timestamp);
# ----------------------------------------------------------
# insert into table groups
# ----------------------------------------------------------
2010/7/10 emigonza@gmail.com
I'm working to integrate OTRS in Joomla and my first problem was unify the user.
OTRS use a very ugly method with crypt and Joomla use pass in the form "md5_hex(pass+salt):salt" where salt is a 32 bytes random number in hex (a md5hex of a rand)
This patch convert de passwd of customer users in Joomla form. ------------------------------------------------------------------------------------------
--------------------------------------------- --- Timeo Danaos et dona ferentes --- ---------------------------------------------