changeset 19611:e250af038f2d

ldap auth: %variables in pass/user_attrs are now included in auth cache key. This makes sure that the result won't be cached too aggressively, for example if %{lport} or %{rip} was used as a field's value. Although each of these fields just makes the cache less effective, so it's a good idea to avoid variables entirely in the pass/user_attrs. An alternative is to use passdb/userdb { override_fields }
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sat, 23 Jan 2016 14:05:19 +0200
parents a39061958832
children 1c229d06ba6e
files src/auth/passdb-ldap.c src/auth/userdb-ldap.c
diffstat 2 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/passdb-ldap.c	Sat Jan 23 13:57:54 2016 +0200
+++ b/src/auth/passdb-ldap.c	Sat Jan 23 14:05:19 2016 +0200
@@ -439,6 +439,7 @@
 	module->module.cache_key =
 		auth_cache_parse_key(pool,
 				     t_strconcat(conn->set.base,
+						 conn->set.pass_attrs,
 						 conn->set.pass_filter, NULL));
 	module->module.default_pass_scheme = conn->set.default_pass_scheme;
 	return &module->module;
--- a/src/auth/userdb-ldap.c	Sat Jan 23 13:57:54 2016 +0200
+++ b/src/auth/userdb-ldap.c	Sat Jan 23 14:05:19 2016 +0200
@@ -269,6 +269,7 @@
 	module->module.cache_key =
 		auth_cache_parse_key(pool,
 				     t_strconcat(conn->set.base,
+						 conn->set.user_attrs,
 						 conn->set.user_filter, NULL));
 	return &module->module;
 }