소스 검색

Prevent NullPointerException when not loaded from application context

Carlos Sanchez 19 년 전
부모
커밋
27de814d54

+ 4 - 2
core/src/main/java/org/acegisecurity/context/HttpSessionContextIntegrationFilter.java

@@ -100,6 +100,10 @@ public class HttpSessionContextIntegrationFilter implements InitializingBean, Fi
      */
     private boolean forceEagerSessionCreation = false;
 
+    public HttpSessionContextIntegrationFilter() throws ServletException {
+        this.contextObject = generateNewContext();
+    }
+
     //~ Methods ========================================================================================================
 
     public void afterPropertiesSet() throws Exception {
@@ -113,8 +117,6 @@ public class HttpSessionContextIntegrationFilter implements InitializingBean, Fi
             throw new IllegalArgumentException(
                 "If using forceEagerSessionCreation, you must set allowSessionCreation to also be true");
         }
-
-        this.contextObject = generateNewContext();
     }
 
     /**

+ 2 - 1
core/src/test/java/org/acegisecurity/context/HttpSessionContextIntegrationFilterTests.java

@@ -190,7 +190,8 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
         // Prepare filter
         HttpSessionContextIntegrationFilter filter = new HttpSessionContextIntegrationFilter();
         filter.setContext(SecurityContextImpl.class);
-        filter.afterPropertiesSet();
+        // don't call afterPropertiesSet to test case when not instantiated by Spring 
+        //filter.afterPropertiesSet();
 
         // Execute filter
         executeFilterInContainerSimulator(new MockFilterConfig(), filter, request, response, chain);