Browse Source

SEC-539: Refactored if (httpSession == null) block in storeSecurityContextInSession()

Luke Taylor 18 years ago
parent
commit
fa63d8ecfb

+ 31 - 30
core/src/main/java/org/acegisecurity/context/HttpSessionContextIntegrationFilter.java

@@ -331,45 +331,46 @@ public class HttpSessionContextIntegrationFilter implements InitializingBean, Fi
                                                boolean httpSessionExistedAtStartOfRequest,
                                                int contextWhenChainProceeded) {
         HttpSession httpSession = null;
+
         try {
             httpSession = ((HttpServletRequest) request).getSession(false);
         }
         catch (IllegalStateException ignored) {
         }
 
-        if ((httpSession == null) && httpSessionExistedAtStartOfRequest) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("HttpSession is now null, but was not null at start of request; "
-                        + "session was invalidated, so do not create a new session");
-            }
-        }
-
-        // Generate a HttpSession only if we need to
-        if ((httpSession == null) && !httpSessionExistedAtStartOfRequest) {
-            if (!allowSessionCreation) {
-                if (logger.isDebugEnabled()) {
-                    logger
-                            .debug("The HttpSession is currently null, and the "
-                                    + "HttpSessionContextIntegrationFilter is prohibited from creating an HttpSession "
-                                    + "(because the allowSessionCreation property is false) - SecurityContext thus not "
-                                    + "stored for next request");
-                }
-            } else if (!contextObject.equals(SecurityContextHolder.getContext())) {
+        if (httpSession == null) {
+            if (httpSessionExistedAtStartOfRequest) {
                 if (logger.isDebugEnabled()) {
-                    logger.debug("HttpSession being created as SecurityContextHolder contents are non-default");
-                }
-
-                try {
-                    httpSession = ((HttpServletRequest) request).getSession(true);
-                }
-                catch (IllegalStateException ignored) {
+                    logger.debug("HttpSession is now null, but was not null at start of request; "
+                            + "session was invalidated, so do not create a new session");
                 }
             } else {
-                if (logger.isDebugEnabled()) {
-                    logger
-                            .debug("HttpSession is null, but SecurityContextHolder has not changed from default: ' "
-                                    + SecurityContextHolder.getContext()
-                                    + "'; not creating HttpSession or storing SecurityContextHolder contents");
+                // Generate a HttpSession only if we need to
+
+                if (!allowSessionCreation) {
+                    if (logger.isDebugEnabled()) {
+                        logger
+                                .debug("The HttpSession is currently null, and the "
+                                        + "HttpSessionContextIntegrationFilter is prohibited from creating an HttpSession "
+                                        + "(because the allowSessionCreation property is false) - SecurityContext thus not "
+                                        + "stored for next request");
+                    }
+                } else if (!contextObject.equals(SecurityContextHolder.getContext())) {
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("HttpSession being created as SecurityContextHolder contents are non-default");
+                    }
+
+                    try {
+                        httpSession = ((HttpServletRequest) request).getSession(true);
+                    }
+                    catch (IllegalStateException ignored) {
+                    }
+                } else {
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("HttpSession is null, but SecurityContextHolder has not changed from default: ' "
+                                + SecurityContextHolder.getContext()
+                                + "'; not creating HttpSession or storing SecurityContextHolder contents");
+                    }
                 }
             }
         }