diff --git a/core/src/main/java/org/acegisecurity/userdetails/ldap/LdapUserDetailsImpl.java b/core/src/main/java/org/acegisecurity/userdetails/ldap/LdapUserDetailsImpl.java index 491f6189a9..4e5e17a378 100644 --- a/core/src/main/java/org/acegisecurity/userdetails/ldap/LdapUserDetailsImpl.java +++ b/core/src/main/java/org/acegisecurity/userdetails/ldap/LdapUserDetailsImpl.java @@ -109,7 +109,7 @@ public class LdapUserDetailsImpl implements LdapUserDetails { * Variation of essence pattern. Used to create mutable intermediate object */ public static class Essence { - LdapUserDetailsImpl instance = new LdapUserDetailsImpl(); + LdapUserDetailsImpl instance = createTarget(); List mutableAuthorities = new ArrayList(); public Essence() {} @@ -127,6 +127,10 @@ public class LdapUserDetailsImpl implements LdapUserDetails { setAuthorities(copyMe.getAuthorities()); } + LdapUserDetailsImpl createTarget() { + return new LdapUserDetailsImpl(); + } + public Essence addAuthority(GrantedAuthority a) { mutableAuthorities.add(a);