From 56d3a85461d35d68b495d81012d86c37b4aeb033 Mon Sep 17 00:00:00 2001 From: wenshao Date: Wed, 28 Aug 2013 13:56:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=88=9B=E5=BB=BAsession?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../druid/support/http/ResourceSerlvet.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/alibaba/druid/support/http/ResourceSerlvet.java b/src/main/java/com/alibaba/druid/support/http/ResourceSerlvet.java index 7db5c31a99..64652d6837 100644 --- a/src/main/java/com/alibaba/druid/support/http/ResourceSerlvet.java +++ b/src/main/java/com/alibaba/druid/support/http/ResourceSerlvet.java @@ -179,7 +179,6 @@ public abstract class ResourceSerlvet extends HttpServlet { } public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - HttpSession session = request.getSession(); String contextPath = request.getContextPath(); String servletPath = request.getServletPath(); String requestURI = request.getRequestURI(); @@ -210,9 +209,12 @@ public abstract class ResourceSerlvet extends HttpServlet { return; } - if (isRequireAuth() - && session.getAttribute(SESSION_USER_KEY) == null - && !("/login.html".equals(path) || path.startsWith("/css") || path.startsWith("/js") || path.startsWith("/img"))) { + if (isRequireAuth() // + && !ContainsUser(request)// + && !("/login.html".equals(path) // + || path.startsWith("/css")// + || path.startsWith("/js") // + || path.startsWith("/img"))) { if (contextPath == null || contextPath.equals("") || contextPath.equals("/")) { response.sendRedirect("/druid/login.html"); } else { @@ -247,7 +249,14 @@ public abstract class ResourceSerlvet extends HttpServlet { // find file in resources path returnResourceFile(path, uri, response); } - + + public boolean ContainsUser(HttpServletRequest request) { + HttpSession session = request.getSession(false); + if (session == null) { + return false; + } + return session.getAttribute(SESSION_USER_KEY) != null; + } public boolean isRequireAuth() { return this.username != null; @@ -257,6 +266,6 @@ public abstract class ResourceSerlvet extends HttpServlet { String remoteAddress = request.getRemoteAddr(); return isPermittedRequest(remoteAddress); } - + protected abstract String process(String url); }