Added login redirect

This commit is contained in:
Ziver Koc 2018-11-05 10:28:30 +01:00
parent eafb34d2c2
commit af6e662aae
3 changed files with 20 additions and 4 deletions

View file

@ -22,6 +22,7 @@ public interface ZalleryConstants {
public static final String SESSION_KEY_USER_MSG = "zall_user_message"; public static final String SESSION_KEY_USER_MSG = "zall_user_message";
public static final String SESSION_KEY_USER_OBJ = "zall_user"; public static final String SESSION_KEY_USER_OBJ = "zall_user";
public static final String SESSION_KEY_LOGIN_FRWD = "login_forward";
public static final long SESSION_TIMEOUT = 3*24*60*60*1000; // 2 day public static final long SESSION_TIMEOUT = 3*24*60*60*1000; // 2 day
/** Cookie Constants **/ /** Cookie Constants **/

View file

@ -16,6 +16,8 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.logging.Logger; import java.util.logging.Logger;
import static zall.ZalleryConstants.SESSION_KEY_LOGIN_FRWD;
/** /**
* This filter will check if user is valid, if not it will redirect to the login page * This filter will check if user is valid, if not it will redirect to the login page
*/ */
@ -53,11 +55,17 @@ public class AuthenticationFilter implements Filter {
} else { } else {
// do not continue the filter pipeline forward to login page // do not continue the filter pipeline forward to login page
logger.fine("User not authenticated, redirecting to login page."); logger.fine("User not authenticated, redirecting to login page.");
httpRequest.getSession().putValue(SESSION_KEY_LOGIN_FRWD, getRequestURL(httpRequest));
ZalleryServlet.redirect(LoginServlet.URI, httpRequest, (HttpServletResponse) response); ZalleryServlet.redirect(LoginServlet.URI, httpRequest, (HttpServletResponse) response);
} }
} }
} }
private String getRequestURL(HttpServletRequest request){
return request.getRequestURI() +
(ObjectUtil.isEmpty(request.getQueryString()) ? "" : "?" + request.getQueryString());
}
private boolean isWhitelisted(HttpServletRequest request) { private boolean isWhitelisted(HttpServletRequest request) {
if (ObjectUtil.isEmpty(request)) if (ObjectUtil.isEmpty(request))
return false; return false;

View file

@ -4,6 +4,7 @@ import zall.Zallery;
import zall.ZalleryServlet; import zall.ZalleryServlet;
import zall.bean.User; import zall.bean.User;
import zall.manager.AuthenticationManager; import zall.manager.AuthenticationManager;
import zutil.ObjectUtil;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import zutil.ui.UserMessageManager; import zutil.ui.UserMessageManager;
@ -17,6 +18,8 @@ import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.logging.Logger; import java.util.logging.Logger;
import static zall.ZalleryConstants.SESSION_KEY_LOGIN_FRWD;
@WebServlet(LoginServlet.URI) @WebServlet(LoginServlet.URI)
public class LoginServlet extends ZalleryServlet { public class LoginServlet extends ZalleryServlet {
@ -40,6 +43,10 @@ public class LoginServlet extends ZalleryServlet {
// Forward user // Forward user
if (user != null) { if (user != null) {
logger.fine("User(" + user.getEmail() + ") already authenticated, forwarding to gallery."); logger.fine("User(" + user.getEmail() + ") already authenticated, forwarding to gallery.");
if (ObjectUtil.isEmpty(request.getSession().getAttribute(SESSION_KEY_LOGIN_FRWD)))
redirect((String)request.getSession().getAttribute(SESSION_KEY_LOGIN_FRWD), request, response);
else
redirect(GalleryServlet.URI, request, response); redirect(GalleryServlet.URI, request, response);
} else { } else {
include(JSP_FILE, request, response); include(JSP_FILE, request, response);