[Dovecot] Combination of default domain and username character translation problem in POP3 server configuration

Steffen Kaiser skdovecot at smail.inf.fh-brs.de
Thu Nov 19 16:37:59 EET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, 19 Nov 2009, Javier Vico Egea wrote:

> In that case it works perfect but my problem are all the users using the old
> vm-pop3 configuration with XXX!mysecondarydomain.es

Yep, I just wanted confirmation :)

There is currently no way to change this behaviour by configuration, but

src/auth/auth-request.c

contains function auth_request_fix_username():

The default domain is appended, before the character translation takes 
place.

========
 	if (strchr(username, '@') == NULL &&
 	    request->auth->default_realm != NULL) {
 		user = p_strconcat(request->pool, username, "@",
                                    request->auth->default_realm, NULL);
 	} else {
 		user = p_strdup(request->pool, username);
 	}

         for (p = (unsigned char *)user; *p != '\0'; p++) {
 		if (request->auth->username_translation[*p & 0xff] != 0)
 			*p = request->auth->username_translation[*p & 
0xff];
 		if (request->auth->username_chars[*p & 0xff] == 0) {
 			*error_r = t_strdup_printf(
 				"Username contains disallowed character: "
 				"0x%02x", *p);
 			return NULL;
 		}
 	}
=========

I would change the first if() into:

=========
 	if (strchr(username, '@') == NULL &&
 		strchr(username, '!') == NULL &&
 	    request->auth->default_realm != NULL) {
=========

Note the strchr() in the second line. The default domain is
not appended, if either an Ad sign or exclamation mark is
present in the username.

Maybe, you ask Timo to have a way to conditionally let replace
a set of characters into '@' before this check.

Regards,

- -- 
Steffen Kaiser
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iQEVAwUBSwVYSnWSIuGy1ktrAQI/4gf/TFGCcTnIaxWsZiRFi/P0iSr0uyPdFP8+
dQMgAVkYYt/sP7PH28vZbMHHtiBtIb7T3FTiuNclXXZcLrfj3NX3zf8XfNFknd4j
BzcghW+wE+2I9v4O5/WmKRD79herBCGOTnswOMcRk9zPrIL2lEjuDhOFsePQXjTI
IYBybQx+EebAYRUwtVgUc1leQtaD02QtFLLM2EbIbIbNhnYLaOr6+YQs2Ghi6LpL
MAbfsRh00L/AmY5NNXZUPK2UKpTyppBxVMwwv+K12FqABzs6PAdQz8LpdwqrRDOX
7Raze+KD4U9M9imLVgcD8dgdRnl6wGQJnTFiA0kgb0fyEqk/pL/tpg==
=KieQ
-----END PGP SIGNATURE-----


More information about the dovecot mailing list