use of org.apereo.portal.PortalException in project uPortal by Jasig.
the class UserInstanceManagerImpl method getUserInstance.
/**
* Returns the UserInstance object that is associated with the given request.
*
* @param request Incoming HttpServletRequest
* @return UserInstance object associated with the given request
*/
@Override
public IUserInstance getUserInstance(HttpServletRequest request) throws PortalException {
try {
request = this.portalRequestUtils.getOriginalPortalRequest(request);
} catch (IllegalArgumentException iae) {
//ignore, just means that this isn't a wrapped request
}
// Use request attributes first for the fastest possible retrieval
IUserInstance userInstance = (IUserInstance) request.getAttribute(KEY);
if (userInstance != null) {
return userInstance;
}
final IPerson person;
try {
// Retrieve the person object that is associated with the request
person = this.personManager.getPerson(request);
} catch (Exception e) {
logger.error("Exception while retrieving IPerson!", e);
throw new PortalSecurityException("Could not retrieve IPerson", e);
}
if (person == null) {
throw new PortalSecurityException("PersonManager returned null person for this request. With no user, there's no UserInstance. Is PersonManager misconfigured? RDBMS access misconfigured?");
}
final HttpSession session = request.getSession();
if (session == null) {
throw new IllegalStateException("HttpServletRequest.getSession() returned a null session for request: " + request);
}
// Return the UserInstance object if it's in the session
UserInstanceHolder userInstanceHolder = getUserInstanceHolder(session);
if (userInstanceHolder != null) {
userInstance = userInstanceHolder.getUserInstance();
if (userInstance != null) {
return userInstance;
}
}
// Create either a UserInstance or a GuestUserInstance
final LocaleManager localeManager = this.getLocaleManager(request, person);
final String userAgent = this.getUserAgent(request);
final IUserProfile userProfile = this.getUserProfile(request, person, localeManager, userAgent);
//Create the user layout manager and user instance object
IUserLayoutManager userLayoutManager = userLayoutManagerFactory.getUserLayoutManager(person, userProfile);
final UserPreferencesManager userPreferencesManager = new UserPreferencesManager(person, userProfile, userLayoutManager);
userInstance = new UserInstance(person, userPreferencesManager, localeManager);
//Ensure the newly created UserInstance is cached in the session
if (userInstanceHolder == null) {
userInstanceHolder = new UserInstanceHolder();
}
userInstanceHolder.setUserInstance(userInstance);
session.setAttribute(KEY, userInstanceHolder);
request.setAttribute(KEY, userInstance);
// Return the new UserInstance
return userInstance;
}
use of org.apereo.portal.PortalException in project uPortal by Jasig.
the class LogoutController method afterPropertiesSet.
@Override
public void afterPropertiesSet() throws Exception {
final Map<String, String> rdHash = new HashMap<String, String>(1);
try {
// We retrieve the redirect strings for each context
// from the security properties file.
String key;
final Properties props = ResourceLoader.getResourceAsProperties(LogoutController.class, "/properties/security.properties");
final Enumeration propNames = props.propertyNames();
while (propNames.hasMoreElements()) {
final String propName = (String) propNames.nextElement();
final String propValue = props.getProperty(propName);
if (propName.startsWith("logoutRedirect.")) {
key = propName.substring(15);
key = key.startsWith("root.") ? key.substring(5) : key;
if (log.isDebugEnabled()) {
log.debug("Redirect key=" + key + ", value=" + propValue);
}
rdHash.put(key, propValue);
}
}
} catch (final PortalException pe) {
log.error("Failed to load logout redirect URLs", pe);
} catch (final IOException ioe) {
log.error("Failed to load logout redirect URLs", ioe);
}
this.redirectMap = rdHash;
}
Aggregations