package org.myjerry.evenstar.openid; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import com.dyuproject.openid.OpenIdUser; public class OpenID { private static final String OPEN_ID_SESSION_ATTRIBUTE = "evenstar.open.id.session.attribute"; public static void setUser(HttpServletRequest request, OpenIdUser user) { HttpSession session = request.getSession(true); Object previousUser = session.getAttribute(OPEN_ID_SESSION_ATTRIBUTE); if(previousUser != null) { session.removeAttribute(OPEN_ID_SESSION_ATTRIBUTE); } session.setAttribute(OPEN_ID_SESSION_ATTRIBUTE, user); } public static OpenIdUser getUser(HttpServletRequest request) { HttpSession session = request.getSession(true); Object user = session.getAttribute(OPEN_ID_SESSION_ATTRIBUTE); if(user != null) { if(user instanceof OpenIdUser) { return (OpenIdUser) user; } } return null; } public static String getUserEmail(HttpServletRequest request) { OpenIdUser user = getUser(request); return getUserEmail(user); } @SuppressWarnings("unchecked") public static String getUserEmail(OpenIdUser user) { if(user != null) { Object attribute = user.getAttribute("axschema"); if(attribute != null && attribute instanceof Map) { Map<String, String> map = (Map<String, String>) attribute; if(map != null) { return map.get("email"); } } } return null; } public static String getName(OpenIdUser user) { return null; } public static void removeUser(HttpServletRequest request) { HttpSession session = request.getSession(true); session.removeAttribute(OPEN_ID_SESSION_ATTRIBUTE); } }