Coverage Report - org.acegisecurity.userdetails.memory.UserMap
 
Classes in this File Line Coverage Branch Coverage Complexity
UserMap
86% 
100% 
1.5
 
 1  
 /* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
 2  
  *
 3  
  * Licensed under the Apache License, Version 2.0 (the "License");
 4  
  * you may not use this file except in compliance with the License.
 5  
  * You may obtain a copy of the License at
 6  
  *
 7  
  *     http://www.apache.org/licenses/LICENSE-2.0
 8  
  *
 9  
  * Unless required by applicable law or agreed to in writing, software
 10  
  * distributed under the License is distributed on an "AS IS" BASIS,
 11  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12  
  * See the License for the specific language governing permissions and
 13  
  * limitations under the License.
 14  
  */
 15  
 
 16  
 package org.acegisecurity.userdetails.memory;
 17  
 
 18  
 import java.util.HashMap;
 19  
 import java.util.Map;
 20  
 
 21  
 import org.acegisecurity.userdetails.UserDetails;
 22  
 import org.acegisecurity.userdetails.UsernameNotFoundException;
 23  
 import org.apache.commons.logging.Log;
 24  
 import org.apache.commons.logging.LogFactory;
 25  
 import org.springframework.util.Assert;
 26  
 
 27  
 
 28  
 /**
 29  
  * Used by {@link InMemoryDaoImpl} to store a list of users and their corresponding granted authorities.
 30  
  *
 31  
  * @author Ben Alex
 32  
  * @version $Id: UserMap.java 1677 2006-09-15 03:47:17Z benalex $
 33  
  */
 34  48
 public class UserMap {
 35  
     //~ Static fields/initializers =====================================================================================
 36  
 
 37  2
     private static final Log logger = LogFactory.getLog(UserMap.class);
 38  
 
 39  
     //~ Instance fields ================================================================================================
 40  
 
 41  48
     private Map userMap = new HashMap();
 42  
 
 43  
     //~ Methods ========================================================================================================
 44  
 
 45  
     /**
 46  
      * Adds a user to the in-memory map.
 47  
      *
 48  
      * @param user the user to be stored
 49  
      *
 50  
      * @throws IllegalArgumentException if a null User was passed
 51  
      */
 52  
     public void addUser(UserDetails user) throws IllegalArgumentException {
 53  56
         Assert.notNull(user, "Must be a valid User");
 54  
 
 55  55
         logger.info("Adding user [" + user + "]");
 56  55
         this.userMap.put(user.getUsername().toLowerCase(), user);
 57  55
     }
 58  
 
 59  
     /**
 60  
      * Locates the specified user by performing a case insensitive search by username.
 61  
      *
 62  
      * @param username to find
 63  
      *
 64  
      * @return the located user
 65  
      *
 66  
      * @throws UsernameNotFoundException if the user could not be found
 67  
      */
 68  
     public UserDetails getUser(String username) throws UsernameNotFoundException {
 69  37
         UserDetails result = (UserDetails) this.userMap.get(username.toLowerCase());
 70  
 
 71  37
         if (result == null) {
 72  4
             throw new UsernameNotFoundException("Could not find user: " + username);
 73  
         }
 74  
 
 75  33
         return result;
 76  
     }
 77  
 
 78  
     /**
 79  
      * Indicates the size of the user map.
 80  
      *
 81  
      * @return the number of users in the map
 82  
      */
 83  
     public int getUserCount() {
 84  8
         return this.userMap.size();
 85  
     }
 86  
 
 87  
     /**
 88  
      * Set the users in this {@link UserMap}. Overrides previously added users.
 89  
      * 
 90  
      * @param users {@link Map} <{@link String}, {@link UserDetails}> with pairs (username, userdetails)
 91  
      * @since 1.1
 92  
      */
 93  
     public void setUsers(Map users) {
 94  0
         this.userMap = users;
 95  0
     }
 96  
 }