jquery - Why are cookies not being destroyed in Java MVC website -
jquery - Why are cookies not being destroyed in Java MVC website -
i attempting prevent users viewing webpage if not logged in.
currently user able "login" sets cookie 24 hours. accomplish using ajax forwards admin page after creating "loggedin" cookie.
when user navigates maincontroller?page=logout
should delete cookie , forwards user login page, appears do.
but when navigating maincontroller?page=admin
user should forwarded login page if no cookies exist, instead admin page loads. i'm assuming i'm not deleting cookies properly?
here ajax phone call check user credentials when logging in:
$("#loginform").submit(function(e){ e.preventdefault(); //stop default action var postdata = $("#loginform").serializearray(); var username = $("#username").val(); var password = $("#password").val(); var botcatcher = $(".botcatcher").val(); if(username.length > 3 && password.length > 3 && botcatcher.length == 0){ $.ajax( { type: "post", url : "maincontroller", info : postdata, success: function(data) { if(data == "success"){ window.location.href = "maincontroller?page=admin"; }else if(data == "nope"){ $(".test").html("<p>login details incorrect. please seek again.</p>"); } }, error: function(jqxhr, textstatus, errorthrown) { $(".test").html("<p>ss"+errorthrown+textstatus+jqxhr+"</p>"); } }); }else{ $(".test").html("<p>unable login: ensure details correct.</p>"); } });
this how i'm setting cookie in dopost
method of maincontroller servlet , outputing "success" allow jquery forwards admin webpage.
cookie loggedin = new cookie("loggedin", "true"); loggedin.setmaxage(60 * 60 * 24); response.addcookie(loggedin); out.print("success");
this how command navigation, can see logout case should delete cookie means admin case should forwards user login page because cookie object null? instead loads admin page. - actuated using link on admin page pointing maincontroller?page=logout
supposed delete cookie , forwards login page, appears do. can still navigate admin page without needing login.
protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { string page = getpagename(request.getparameter("page")); cookie cookies[] = request.getcookies(); switch (page) { case "admin": if (cookies == null) { page = "login"; return; } break; case "logout": (cookie cookie : cookies) { cookie.setmaxage(0); cookie.setpath("/"); response.addcookie(cookie); } page = "login"; break; } requestdispatcher rd = getservletcontext().getrequestdispatcher(views + getpagefilename(page)); rd.forward(request, response); }
why loading admin page instead of forwarding login page ( , preventing users not logged in view page ). not deleting cookies correctly?
java jquery ajax servlets cookies
Comments
Post a Comment