package net.sourceforge.solexatools; // -*- tab-width: 4 -*- import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sourceforge.seqware.common.model.Registration; /** * <p> * Security class. * </p> * * @author boconnor * @version $Id: $Id */ public class Security { /** * <p> * isAuthenticated. * </p> * * @param request * a {@link javax.servlet.http.HttpServletRequest} object. * @return a boolean. */ public static final boolean isAuthenticated(HttpServletRequest request) { HttpSession session = request.getSession(false); if (session != null && (Registration) session.getAttribute("registration") != null) return true; return false; } /** * <p> * getRegistration. * </p> * * @param request * a {@link javax.servlet.http.HttpServletRequest} object. * @return a {@link net.sourceforge.seqware.common.model.Registration} object. */ public static final Registration getRegistration(HttpServletRequest request) { if (request == null || request.getSession(false) == null) return null; return (Registration) request.getSession(false).getAttribute("registration"); } /** * <p> * requireRegistration. * </p> * * @param request * a {@link javax.servlet.http.HttpServletRequest} object. * @param response * a {@link javax.servlet.http.HttpServletResponse} object. * @return a {@link net.sourceforge.seqware.common.model.Registration} object. */ public static final Registration requireRegistration(HttpServletRequest request, HttpServletResponse response) { // TODO// use a more specific Exception sub-class? Registration registration = getRegistration(request); if (registration != null) return registration; // TODO// Save this URL for coming back to, using a session property String requestURI = request.getRequestURI(); String servletPath = request.getServletPath(); String applicationRootURI = requestURI.substring(0, requestURI.length() - servletPath.length()); Debug.put(": //TODO// save URI for returning after login"); Debug.put(": applicationRootURI = " + applicationRootURI); Debug.put(": redirecting to login..."); // Redirect to login... if (response != null) { response.setStatus(response.SC_FORBIDDEN); try { response.sendRedirect("login.htm"); } catch (Exception e) { // ignore } } return registration; // throw new Exception(); } }