001: /*
002: * Copyright (c) 2001 - 2005 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata groupware may be redistributed under the GNU General Public
006: * License as published by the Free Software Foundation;
007: * version 2 of the License.
008: *
009: * These programs are free software; you can redistribute them and/or
010: * modify them under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; version 2 of the License.
012: *
013: * These programs are distributed in the hope that they will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: *
017: * See the GNU General Public License in the file LICENSE.txt for more
018: * details.
019: *
020: * If you would like a copy of the GNU General Public License write to
021: *
022: * Free Software Foundation, Inc.
023: * 59 Temple Place - Suite 330
024: * Boston, MA 02111-1307, USA.
025: *
026: *
027: * To arrange commercial support and licensing, contact ivata at
028: * http://www.ivata.com/contact.jsp
029: * -----------------------------------------------------------------------------
030: * $Log: TestGuestMaskAuthenticator.java,v $
031: * Revision 1.2 2005/10/02 14:08:57 colinmacleod
032: * Added/improved log4j logging.
033: *
034: * Revision 1.1 2005/09/29 14:04:36 colinmacleod
035: * Added to simplify user right testing. Used in setting subproject.
036: *
037: * Revision 1.1 2005/09/14 15:41:26 colinmacleod
038: * First version.
039: * Added for ivata cms.
040: *
041: */
042: package com.ivata.groupware.mask.struts;
043:
044: import org.apache.log4j.Logger;
045:
046: import javax.servlet.http.HttpServletRequest;
047: import javax.servlet.http.HttpSession;
048:
049: import com.ivata.groupware.admin.security.Security;
050: import com.ivata.groupware.admin.security.server.SecuritySession;
051: import com.ivata.groupware.admin.security.user.UserDO;
052: import com.ivata.mask.util.StringHandling;
053: import com.ivata.mask.util.SystemException;
054:
055: /**
056: * <p>
057: * This authenticator allows guest access to all pages. It automatically
058: * creates a guest security session if there is none, or logs in with the
059: * user and password given by request parameters of the names
060: * "<code>userName</code>" and "<code>password</code>".
061: * </p>
062: * <p>
063: * <strong>Don't use this in your application - it's intended for testing only.
064: * </strong>
065: * </p>
066: *
067: * @since ivata groupware 1.0 (02-Sep-2005)
068: * @author Colin MacLeod <colin.macleod@ivata.com>
069: * @version $Revision: 1.2 $
070: */
071: public class TestGuestMaskAuthenticator extends GuestMaskAuthenticator {
072: /**
073: * Logger for this class.
074: */
075: private static final Logger logger = Logger
076: .getLogger(TestGuestMaskAuthenticator.class);
077:
078: private Security security;
079:
080: public TestGuestMaskAuthenticator(Security securityParam,
081: String siteThemeParam, String siteDefaultDBParam) {
082: super (securityParam, siteThemeParam, siteDefaultDBParam);
083: security = securityParam;
084: }
085:
086: /**
087: * This method actually logs in the guest user. Designed for overriding.
088: *
089: * @param requestParam Request we are currently processing.
090: * @param sessionParam HTTP Session for current user.
091: * @return guest security session.
092: */
093: protected SecuritySession loginGuest(
094: final HttpSession sessionParam,
095: final HttpServletRequest requestParam)
096: throws SystemException {
097: if (logger.isDebugEnabled()) {
098: logger.debug("loginGuest(HttpSession sessionParam = "
099: + sessionParam
100: + ", HttpServletRequest requestParam = "
101: + requestParam + ") - start");
102: }
103:
104: String requestUserName = requestParam.getParameter("userName");
105: String requestPassword = requestParam.getParameter("password");
106: SecuritySession securitySession = super .loginGuest(
107: sessionParam, requestParam);
108: if (StringHandling.isNullOrEmpty(requestUserName)) {
109: if (logger.isDebugEnabled()) {
110: logger
111: .debug("loginGuest(HttpSession, HttpServletRequest) - end - return value = "
112: + securitySession);
113: }
114: return securitySession;
115: }
116: UserDO user = security.findUserByName(securitySession,
117: requestUserName);
118: SecuritySession returnSecuritySession = security.login(user,
119: requestPassword);
120: if (logger.isDebugEnabled()) {
121: logger
122: .debug("loginGuest(HttpSession, HttpServletRequest) - end - return value = "
123: + returnSecuritySession);
124: }
125: return returnSecuritySession;
126: }
127:
128: }
|