lemonldap-ng issueshttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues2022-05-02T15:12:54Zhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/1886mysql and MariaDB DBI UserBackend UTF8 encoding2022-05-02T15:12:54ZAndreas Deschkamysql and MariaDB DBI UserBackend UTF8 encoding### Concerned version
Version: %2.0.5
Platform: (Nginx)
### Summary
Variables read out of Maria DB database are not UTF8-encoded
In the Database there is for example "Österreich". The Ö will appear as question mark in the session va...### Concerned version
Version: %2.0.5
Platform: (Nginx)
### Summary
Variables read out of Maria DB database are not UTF8-encoded
In the Database there is for example "Österreich". The Ö will appear as question mark in the session variable.
Tables, columns in the database are encoded in utf8mb4.
I used dbi:mysql and dbi:MariaDB. Neither worked.
For dbi:mysql I added in the connect command the option to enable utf8mb4:
```
DBI->connect_cached(
$conf->{dbiAuthChain}, $conf->{dbiAuthUser},
# setting mysql_enable_utf8mb4 does not seem to help
$conf->{dbiAuthPassword}, { RaiseError => 1, mysql_enable_utf8mb4 => 1 }
);
```
For dbi:MariaDB the change resulted in an error.
When I added the following line before `$req->{sessionInfo}->{$var} =$req->data->{entry2}->{$attr}` in NG/Portal/UserDB/DBI.pm it worked correctly
```
utf8::encode( $req->data->{entry}->{$attr} );
```
Maybe I am missing something with setting up the configuration. I use the coudot/lemonldap-ng:2.0.5 docker image.
### Backends used
Database is MariaDB version 10.3.15.FAQhttps://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/-/issues/977Problem with accents characters in SOAP Requests2018-12-04T08:29:39ZRichard PhanProblem with accents characters in SOAP RequestsHi,
I have a critical bug, I use SOAP for using sessions, but, when there are accents in sessions information, the handlers send increasingly large POST requests to /index.pl/adminSessions :
```
lemonldap [11/Mar/2016:14:52:16 +0100] "...Hi,
I have a critical bug, I use SOAP for using sessions, but, when there are accents in sessions information, the handlers send increasingly large POST requests to /index.pl/adminSessions :
```
lemonldap [11/Mar/2016:14:52:16 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 146080 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:52:41 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 146080 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:53:41 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 277152 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:54:51 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 539296 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:56:01 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 1063584 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:57:02 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 2112160 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:57:16 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 4209312 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:58:07 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 4209312 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:59:32 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 8403616 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:14:59:37 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 8403616 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:01:48 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 16792224 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:01:54 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 16792224 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:02:51 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 33569440 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:02:46 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 33569440 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:03:35 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 33569440 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:03:28 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 33569440 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:02:40 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 33569440 "-" "SOAP::Lite/Perl/1.1"
lemonldap [11/Mar/2016:15:03:22 +0100] "POST /index.pl/adminSessions HTTP/1.1" 200 33569440 "-" "SOAP::Lite/Perl/1.1"
...
```
A request SOAP size may exceed 60 MB !
I dump all my mysql request and here is a request extract which show the problem when contain a accent is replace by strange repeat characters :
```
UPDATE sessions SET a_session = '^E ^Y\0\0\0\0^_^D^Y\0\0\0\0^A^D^B\0\0\0^E^D^Y\0\0\0\0^B^W\rXXX.XX.XXX.XX^B\0\0\0^FipAddr^W\n1456741132^B\0\0\0^F_utime^D^Y\0\0\0\0^B^W\rXXX.XX.XXX.XX^B\0\0\0^FipAddr^W\n1455876018^B\0\0\
0^F_utime^D^Y\0\0\0\0^B^W\rXXX.XX.XXX.XX^B\0\0\0^FipAddr^W\n1455874416^B\0\0\0^F_utime^D^Y\0\0\0\0^B^W\rXXX.XX.XXX.XX^B\0\0\0^FipAddr^W\n1455793697^B\0\0\0^F_utime^D^Y\0\0\0\0^B^W\rXXX.XX.XXX.XX^B\0\0\0^FipAddr^W\n1455712268^B\0\0\
0^F_utime^B\0\0\0^LsuccessLogin^B\0\0\0^LloginHistory^A\0\0^B^KJosÃ<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â
<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â
<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â
<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â
<U+0082>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0083>Ã<U+0082>Â<U+0083>Ã<U+0083>Â<U+0082>Ã<U+0082>Â<U+0082>Ã<U+0083>Â
<U+0083>Ã<U+0082>Â<U+0082>Ã<U+0083>Â<U+0082>Ã<U+0082>...
```
As you see, the word José is remplaced by JosÃ<U+0083>Â<U+0083>Ã<U+0082>...
Any Idea ?
Regards
In discussion