package de.uhilger.um.pub; import de.uhilger.um.api.Api; import static de.uhilger.um.api.UserMgr.MP_USER_DATA; import static de.uhilger.um.api.UserMgr.SQL_GET_USER_DATA; import static de.uhilger.um.api.UserMgr.WITHOUT_BLOBS; import de.uhilger.um.daten.UserData; import java.security.Principal; import java.util.List; import java.util.logging.Logger; /** * */ public class SessionManager extends Api { private static final Logger logger = Logger.getLogger(SessionManager.class.getName()); // /um/pub?c=de.uhilger.um.pub.SessionManager&m=getSessionUser public UserData getSessionUser() { UserData userData = new UserData(); userData.setFirstName("nicht angemeldet"); userData.setLastName("nicht angemeldet"); userData.setId("nicht angemeldet"); userData.setEmail("nicht angemeldet"); Object p = getRequest().getUserPrincipal(); if(p instanceof Principal) { String id = ((Principal) p).getName(); logger.finer("User-ID: " + id); List userDataList = getDb().select(getSql(SQL_GET_USER_DATA), getMapper(MP_USER_DATA), WITHOUT_BLOBS, id); if(userDataList != null && userDataList.size() > 0) { Object o = userDataList.get(0); if(o instanceof UserData) { userData = (UserData) o; } } } else { logger.finer("getUserPrincipal returned null or no Principal"); } return userData; } public String expireSession() { getRequest().getSession().invalidate(); return "Die aktuelle Sitzung ist nicht mehr gueltig."; } }