JSEC-33 - added two test cases to verify the issue is resolved
git-svn-id: https://svn.apache.org/repos/asf/incubator/jsecurity/trunk@729768 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/jsecurity.iml b/jsecurity.iml
index 340e7df..a135769 100644
--- a/jsecurity.iml
+++ b/jsecurity.iml
@@ -9,11 +9,6 @@
<file>file://$MODULE_DIR$/samples/spring/webroot/WEB-INF/sample-servlet.xml</file>
<file>file://$MODULE_DIR$/samples/spring/webroot/WEB-INF/remoting-servlet.xml</file>
</fileset>
- <options>
- <option name="enableValidation" value="true" />
- <option name="reportErrorsAsWarnings" value="true" />
- </options>
- <customNs />
</configuration>
</facet>
<facet type="web" name="jsecurity-web">
@@ -32,11 +27,7 @@
<setting name="EXPLODED_ENABLED" value="true" />
<setting name="JAR_URL" value="file://$MODULE_DIR$/out/Quickstart Webapp.war" />
<setting name="JAR_ENABLED" value="false" />
- <setting name="BUILD_MODULE_ON_FRAME_DEACTIVATION" value="false" />
- <setting name="BUILD_EXTERNAL_DEPENDENCIES" value="false" />
<setting name="EXCLUDE_EXPLODED_DIRECTORY" value="true" />
- <setting name="RUN_JASPER_VALIDATION" value="true" />
- <setting name="BUILD_ONLY_WEB_RESOURCES" value="false" />
</building>
<packaging>
<containerElement type="module" name="jsecurity">
@@ -89,7 +80,6 @@
</library>
</orderEntry>
<orderEntry type="library" name="quickstart-libs" level="project" />
- <orderEntryProperties />
</component>
<component name="copyright">
<Base>
diff --git a/jsecurity.ipr b/jsecurity.ipr
index 6626d94..23bfc16 100644
--- a/jsecurity.ipr
+++ b/jsecurity.ipr
@@ -7,6 +7,7 @@
<antReference projectDefault="true" />
<customJdkName value="" />
<maximumHeapSize value="128" />
+ <maximumStackSize value="32" />
<properties />
</buildFile>
</component>
@@ -60,6 +61,7 @@
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
<option name="MAXIMUM_HEAP_SIZE" value="128" />
</component>
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
@@ -275,6 +277,9 @@
</item>
</group>
</component>
+ <component name="ProjectDetails">
+ <option name="projectName" value="jsecurity" />
+ </component>
<component name="ProjectFileVersion" converted="true" />
<component name="ProjectModuleManager">
<modules>
@@ -283,7 +288,7 @@
<module fileurl="file://$PROJECT_DIR$/samples/standalone/standalone.iml" filepath="$PROJECT_DIR$/samples/standalone/standalone.iml" />
</modules>
</component>
- <component name="ProjectRootManager" version="2" assert-keyword="true" jdk-15="true" project-jdk-name="1.5" project-jdk-type="JavaSDK">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_5" assert-keyword="true" jdk-15="true" project-jdk-name="1.5" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/idea" />
</component>
<component name="ResourceManagerContainer">
@@ -318,7 +323,7 @@
</entry>
</map>
</option>
- <option name="myVersion" value="123" />
+ <option name="myVersion" value="124" />
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="svn" />
diff --git a/samples/quickstart/quickstart.iml b/samples/quickstart/quickstart.iml
index 7a4900b..e3e0195 100644
--- a/samples/quickstart/quickstart.iml
+++ b/samples/quickstart/quickstart.iml
@@ -9,7 +9,6 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="jsecurity" />
<orderEntry type="library" name="quickstart-libs" level="project" />
- <orderEntryProperties />
</component>
<component name="copyright">
<Base>
diff --git a/samples/standalone/standalone.iml b/samples/standalone/standalone.iml
index a76be68..b9de9e9 100644
--- a/samples/standalone/standalone.iml
+++ b/samples/standalone/standalone.iml
@@ -8,7 +8,6 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="jsecurity" />
- <orderEntryProperties />
</component>
<component name="copyright">
<Base>
diff --git a/test/log4j.properties b/test/log4j.properties
index be511b2..14283bf 100644
--- a/test/log4j.properties
+++ b/test/log4j.properties
@@ -32,4 +32,6 @@
# General Apache libraries is WARN
log4j.logger.org.apache=WARN
-log4j.logger.net.sf.ehcache=WARN
\ No newline at end of file
+log4j.logger.net.sf.ehcache=WARN
+
+log4j.logger.org.jsecurity.util.ThreadContext=WARN
\ No newline at end of file
diff --git a/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java b/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java
index e8121c1..684d3e6 100644
--- a/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java
+++ b/test/org/jsecurity/web/DefaultWebSecurityManagerTest.java
@@ -29,26 +29,23 @@
*/
public class DefaultWebSecurityManagerTest {
+ private DefaultWebSecurityManager sm;
+
@Before
public void setup() {
+ sm = new DefaultWebSecurityManager();
ThreadContext.clear();
}
@After
public void tearDown() {
+ sm.destroy();
ThreadContext.clear();
}
@Test
- public void simpleWebSecurityManagerInit() {
- DefaultWebSecurityManager dwsm = new DefaultWebSecurityManager();
- dwsm.destroy();
+ public void jsecuritySessionModeInit() {
+ sm.setSessionMode(DefaultWebSecurityManager.JSECURITY_SESSION_MODE);
}
- @Test
- public void jsecuritySessionModeWebSecurityManagerInit() {
- DefaultWebSecurityManager dwsm = new DefaultWebSecurityManager();
- dwsm.setSessionMode(DefaultWebSecurityManager.JSECURITY_SESSION_MODE);
- dwsm.destroy();
- }
}
diff --git a/test/org/jsecurity/web/servlet/JSecurityFilterTest.java b/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
index 227c6b4..cbc2b98 100644
--- a/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
+++ b/test/org/jsecurity/web/servlet/JSecurityFilterTest.java
@@ -19,10 +19,16 @@
package org.jsecurity.web.servlet;
import static org.easymock.EasyMock.*;
+import org.jsecurity.util.ThreadContext;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
+import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
/**
* @author Les Hazlewood
@@ -30,13 +36,27 @@
*/
public class JSecurityFilterTest {
+ private static final String FILTER_NAME = "JSecurityFilter";
+
private JSecurityFilter filter;
private FilterConfig mockFilterConfig;
private ServletContext mockServletContext;
+ private FilterChain mockFilterChain;
+
+ @Before
+ public void setUp() {
+ ThreadContext.clear();
+ }
+
+ @After
+ public void tearDown() {
+ ThreadContext.clear();
+ }
protected void setUp(String config) {
mockFilterConfig = createMock(FilterConfig.class);
mockServletContext = createMock(ServletContext.class);
+ mockFilterChain = createNiceMock(FilterChain.class);
expect(mockFilterConfig.getServletContext()).andReturn(mockServletContext);
expect(mockFilterConfig.getInitParameter(JSecurityFilter.CONFIG_CLASS_NAME_INIT_PARAM_NAME)).andReturn(null).once();
@@ -44,18 +64,6 @@
expect(mockFilterConfig.getInitParameter(JSecurityFilter.CONFIG_URL_INIT_PARAM_NAME)).andReturn(null).once();
}
- public void tearDown() throws Exception {
- reset(mockServletContext);
- reset(mockFilterConfig);
-
- replay(mockServletContext);
-
- //this.filter.destroy();
-
- verify(mockServletContext);
- verify(mockFilterConfig);
- }
-
protected void replayAndVerify() throws Exception {
replay(mockServletContext);
replay(mockFilterConfig);
@@ -63,7 +71,6 @@
this.filter = new JSecurityFilter();
this.filter.init(mockFilterConfig);
-
verify(mockFilterConfig);
verify(mockServletContext);
}
@@ -81,4 +88,52 @@
"authc.successUrl = /index.jsp");
replayAndVerify();
}
+
+ protected void testRequest(String config) throws Exception {
+ setUp(config);
+ expect(mockFilterConfig.getFilterName()).andReturn(FILTER_NAME);
+ replay(mockServletContext);
+ replay(mockFilterConfig);
+
+ filter = new JSecurityFilter();
+ filter.init(mockFilterConfig);
+
+ HttpServletRequest mockRequest = createNiceMock(HttpServletRequest.class);
+ mockRequest.setAttribute(FILTER_NAME + JSecurityFilter.ALREADY_FILTERED_SUFFIX, Boolean.TRUE);
+
+ HttpServletResponse mockResponse = createNiceMock(HttpServletResponse.class);
+
+ replay(mockRequest);
+
+ filter.doFilter(mockRequest, mockResponse, mockFilterChain);
+
+ verify(mockRequest);
+ verify(mockFilterConfig);
+ verify(mockServletContext);
+ }
+
+ /**
+ * Along with {@link #testSimpleRequestJSecuritySessionMode()}, this method asserts that
+ * <a href="https://issues.apache.org/jira/browse/JSEC-33">JSEC-33</a> is resolved.
+ *
+ * @throws Exception if an error occurs
+ */
+ @Test
+ public void testSimpleRequest() throws Exception {
+ testRequest(null);
+ }
+
+ /**
+ * Along with {@link #testSimpleRequest()}, this method asserts that
+ * <a href="https://issues.apache.org/jira/browse/JSEC-33">JSEC-33</a> is resolved.
+ *
+ * @throws Exception if an error occurs
+ */
+ @Test
+ public void testSimpleRequestJSecuritySessionMode() throws Exception {
+ String config = "[main]\n" +
+ "securityManager.sessionMode = jsecurity";
+ testRequest(config);
+
+ }
}