Coverage Report - org.restafarian.core.security.AuthenticatedUserManager
 
Classes in this File Line Coverage Branch Coverage Complexity
AuthenticatedUserManager
0%
0/33
0%
0/10
3
 
 1  
 package org.restafarian.core.security;
 2  
 
 3  
 import javax.servlet.ServletContext;
 4  
 import javax.servlet.http.HttpServletRequest;
 5  
 import javax.servlet.http.HttpServletResponse;
 6  
 
 7  
 import org.apache.commons.configuration.Configuration;
 8  
 import org.apache.commons.lang.StringUtils;
 9  
 import org.apache.commons.logging.Log;
 10  
 import org.apache.commons.logging.LogFactory;
 11  
 import org.restafarian.core.beans.Person;
 12  
 
 13  
 /**
 14  
  * <p>This module finds and returns the currently authenticated user.</p>
 15  
  */
 16  0
 public class AuthenticatedUserManager {
 17  0
         private static Log log = LogFactory.getLog(AuthenticatedUserManager.class);
 18  
 
 19  
         /**
 20  
          * <p>Initializes the module using the configuration.</p>
 21  
          *
 22  
          * @param context the <code>ServletContext</code> object
 23  
          * @param config the <code>Configuration</code> object
 24  
          */
 25  
         public static void init(ServletContext context, Configuration config) {
 26  0
                 log.info("Initializing the AuthenticatedUserManager.");
 27  
 
 28  
                 // get the implentation class name from the configuration
 29  0
                 String className = config.getString("authenticatedUserManager");
 30  0
                 if (StringUtils.isNotEmpty(className)) {
 31  0
                         log.info("Implementation class name: " + className);
 32  
                 } else {
 33  0
                         className = "org.restafarian.core.utils.DefaultUserManager";
 34  0
                         log.info("No user manager class name specified; configuring default user manager.");
 35  
                 }
 36  
 
 37  
                 // instantiate the class
 38  0
                 UserManager userManager = null;
 39  
                 try {
 40  0
                         userManager = (UserManager) Class.forName(className).newInstance();
 41  0
                 } catch (Exception e) {
 42  0
                         log.info("Exception occured instantiating user manager: " + e, e);
 43  0
                         log.info("Configuring default user manager.");
 44  0
                         userManager = new DefaultUserManager();
 45  0
                 }
 46  
 
 47  
                 // initialize the instantiated class
 48  0
                 userManager.init(context, config);
 49  
 
 50  
                 // store the initialized module in the servlet context
 51  0
                 context.setAttribute("authenticatedUserManager", userManager);
 52  0
         }
 53  
 
 54  
         /**
 55  
          * <p>Returns the currently authenticated user, or null, if there is
 56  
          * no user currently authenticated.</p>
 57  
          *
 58  
          * @param req the <code>HttpServletRequest</code> object
 59  
          * @return user the currently authenticated user
 60  
          */
 61  
         public static Person getAuthenticatedUser(HttpServletRequest req) {
 62  0
                 ServletContext context = req.getSession().getServletContext();
 63  0
                 UserManager userManager = (UserManager) context.getAttribute("authenticatedUserManager");
 64  0
                 if (userManager == null) {
 65  0
                         userManager = new DefaultUserManager();
 66  0
                         if (log.isDebugEnabled()) {
 67  0
                                 log.debug("No user manager configured; employing default user manager.");
 68  
                         }
 69  
                 }
 70  0
                 return userManager.getAuthenticatedUser(req);
 71  
         }
 72  
 
 73  
         /**
 74  
          * <p>Sets the currently authenticated user.</p>
 75  
          *
 76  
          * @param req the <code>HttpServletRequest</code> object
 77  
          * @param res the <code>HttpServletResponse</code> object
 78  
          * @param user the currently authenticated user
 79  
          */
 80  
         public void setAuthenticatedUser(HttpServletRequest req, HttpServletResponse res, Person user) {
 81  0
                 ServletContext context = req.getSession().getServletContext();
 82  0
                 UserManager userManager = (UserManager) context.getAttribute("authenticatedUserManager");
 83  0
                 if (userManager == null) {
 84  0
                         userManager = new DefaultUserManager();
 85  0
                         if (log.isDebugEnabled()) {
 86  0
                                 log.debug("No user manager configured; employing default user manager.");
 87  
                         }
 88  
                 }
 89  0
                 userManager.setAuthenticatedUser(req, res, user);
 90  0
         }
 91  
 }