1 19 20 package com.sslexplorer.activedirectory; 21 22 import java.util.Collection ; 23 24 public final class UserContainer extends PrincipalContainer<ActiveDirectoryUser> { 25 private static final String USERS_CACHE_PREFIX = "users"; 26 private static final String CACHE_FULL_MESSAGE = "activeDirectory.cache.user.full"; 27 public static final UserContainer EMPTY_CACHE = new UserContainer(0, true, false); 28 private final boolean usernamesAreCaseSensitive; 29 30 UserContainer(int cacheSize, boolean inMemoryCache, boolean usernamesAreCaseSensitive) { 31 super(cacheSize, inMemoryCache, USERS_CACHE_PREFIX, CACHE_FULL_MESSAGE); 32 this.usernamesAreCaseSensitive = usernamesAreCaseSensitive; 33 } 34 35 @Override  36 synchronized boolean containsPrincipal(String principalName) { 37 principalName = fixUpUsername(principalName); 38 return super.containsPrincipal(principalName); 39 } 40 41 @Override  42 synchronized ActiveDirectoryUser retrievePrincipal(String principalName) { 43 principalName = fixUpUsername(principalName); 44 return super.retrievePrincipal(principalName); 45 } 46 47 @Override  48 synchronized Collection <ActiveDirectoryUser> retrievePrincipals(String filter) { 49 filter = fixUpUsername(filter); 50 return super.retrievePrincipals(filter); 51 } 52 53 @Override  54 synchronized String storePrincipal(ActiveDirectoryUser principal) { 55 String fixUpUsername = fixUpUsername(principal.getPrincipalName()); 56 storePrinciple(fixUpUsername, principal); 57 return fixUpUsername; 58 } 59 60 @Override  61 void removePrincipal(String principleName) { 62 String fixUpUsername = fixUpUsername(principleName); 63 super.removePrincipal(fixUpUsername); 64 } 65 66 private String fixUpUsername(String username) { 67 return usernamesAreCaseSensitive ? username : username.toLowerCase(); 68 } 69 }
| Popular Tags
|