/* Copyright 2005 Yale University. All rights reserved.
*
* THIS SOFTWARE IS PROVIDED "AS IS," AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE EXPRESSLY
* DISCLAIMED. IN NO EVENT SHALL YALE UNIVERSITY OR ITS EMPLOYEES BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED, THE COSTS OF
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED IN ADVANCE OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* Redistribution and use of this software in source or binary forms,
* with or without modification, are permitted, provided that the
* following conditions are met:
*
* 1. Any redistribution must include the above copyright notice and
* disclaimer and this list of conditions in any related documentation
* and, if feasible, in the redistributed software.
*
* 2. Any redistribution must include the acknowledgment, "This product
* includes software developed by Yale University," in any related
* documentation and, if feasible, in the redistributed software.
*
* 3. The names "Yale" and "Yale University" must not be used to endorse
* or promote products derived from this software.
* */
package edu.yale.its.portal.security.provider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jasig.portal.UserIdentityStoreFactory;
import org.jasig.portal.security.IPerson;
import org.jasig.portal.security.InitialSecurityContextFactory;
import org.jasig.portal.security.PersonFactory;
import org.jasig.portal.security.provider.PersonImpl;
/**
* @author susan.bramhall@yale.edu
* @version $Revision: 1.3 $
* @date Jun 14, 2005
*
*/
public class YalePersonFactory extends PersonFactory {
/**
* Creates an empty IPerson
implementation.
* @return an empty IPerson
implementation
*/
static final Log log = LogFactory.getLog(PersonFactory.class);
public static IPerson createPerson() {
return new YalePersonImpl();
}
/**
* Creates a guest user.
* @return guest user
* @throws Exception
* Determine guest id and create guest user
*/
public static YalePersonImpl createGuestPerson(String userName) throws Exception {
YalePersonImpl person = (YalePersonImpl) createPerson();
person.setAttribute(IPerson.USERNAME, userName);
try {
person.setID(UserIdentityStoreFactory.getUserIdentityStoreImpl().getPortalUID(person));
} catch (Exception e) {
log.error("YalePersonImpl Error from getPortalUID setting IPerson ID for " + userName,e);
throw e;
}
person.setSecurityContext(InitialSecurityContextFactory.getInitialContext("root"));
person.setGuest(true);
return person;
}
public static IPerson createGuestPerson() throws Exception {
YalePersonImpl person = createGuestPerson(GUEST_USERNAME);
return person;
}
}