OF-2170: LDAP userDN cache should contain negative lookups
By caching lookup failures, subsequent lookups are prevented, which will increase performance.
OF-2169: Prevent exception for missing LDAP attribute
When a VCard template refers to an attribute that a user does not have, the resulting value should be empty. This commit prevents a NullPointerException to be thrown.
OF-2168: MUC presence broadcast supression based on role
Openfire offers functionality to suppress the broadcast of occupants that have a certain role. The old implementation is based on the definition of that role that should be present in the presence stanza to be broadcast.
When the presence stanza that is being processed does, for some reason, not include this role, the implementation fails. NullPointerExceptions have been observed in relation to this.
It should be a lot safer to base the broadcast/do not broadcast decision based on the role that is assigned to the user, as this prevents the need to parse a stanza. This commit applies this new strategy.
Additionally, this commit replaces the string-based represention of a role with a type-safe variant.