You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/01/07 20:08:58 UTC
svn commit: r1429969 - in /tomcat/trunk: java/org/apache/catalina/core/
java/org/apache/catalina/deploy/ test/org/apache/catalina/core/
test/org/apache/catalina/deploy/
Author: markt
Date: Mon Jan 7 19:08:58 2013
New Revision: 1429969
URL: http://svn.apache.org/viewvc?rev=1429969&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54284
As per clarification from the Servlet EG, anonymous Filters and Servlets are not permitted.
Patch by Violeta Georgieva.
Added:
tomcat/trunk/test/org/apache/catalina/deploy/TestFilterDef.java (with props)
tomcat/trunk/test/org/apache/catalina/deploy/TestServletDef.java (with props)
Modified:
tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java
tomcat/trunk/java/org/apache/catalina/deploy/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java
tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1429969&r1=1429968&r2=1429969&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java Mon Jan 7 19:08:58 2013
@@ -884,6 +884,11 @@ public class ApplicationContext
private FilterRegistration.Dynamic addFilter(String filterName,
String filterClass, Filter filter) throws IllegalStateException {
+ if (filterName == null || filterName.equals("")) {
+ throw new IllegalArgumentException(sm.getString(
+ "applicationContext.invalidFilterName", filterName));
+ }
+
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
//TODO Spec breaking enhancement to ignore this restriction
throw new IllegalStateException(
@@ -1023,6 +1028,11 @@ public class ApplicationContext
private ServletRegistration.Dynamic addServlet(String servletName,
String servletClass, Servlet servlet) throws IllegalStateException {
+ if (servletName == null || servletName.equals("")) {
+ throw new IllegalArgumentException(sm.getString(
+ "applicationContext.invalidServletName", servletName));
+ }
+
if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
//TODO Spec breaking enhancement to ignore this restriction
throw new IllegalStateException(
Modified: tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=1429969&r1=1429968&r2=1429969&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties Mon Jan 7 19:08:58 2013
@@ -21,6 +21,8 @@ applicationContext.addListener.ise=Liste
applicationContext.addRole.ise=Roles can not be added to context {0} as the context has been initialised
applicationContext.addServlet.ise=Servlets can not be added to context {0} as the context has been initialised
applicationContext.attributeEvent=Exception thrown by attributes event listener
+applicationContext.invalidFilterName=Unable to add filter definition due to invalid filter name [{0}].
+applicationContext.invalidServletName=Unable to add servlet definition due to invalid servlet name [{0}].
applicationContext.mapping.error=Error during mapping
applicationContext.requestDispatcher.iae=Path {0} does not start with a "/" character
applicationContext.resourcePaths.iae=Path {0} does not start with a "/" character
Modified: tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java?rev=1429969&r1=1429968&r2=1429969&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java Mon Jan 7 19:08:58 2013
@@ -25,6 +25,8 @@ import java.util.Map;
import javax.servlet.Filter;
+import org.apache.tomcat.util.res.StringManager;
+
/**
* Representation of a filter definition for a web application, as represented
@@ -38,6 +40,9 @@ public class FilterDef implements Serial
private static final long serialVersionUID = 1L;
+ private static final StringManager sm =
+ StringManager.getManager(Constants.Package);
+
// ------------------------------------------------------------- Properties
@@ -108,6 +113,10 @@ public class FilterDef implements Serial
}
public void setFilterName(String filterName) {
+ if (filterName == null || filterName.equals("")) {
+ throw new IllegalArgumentException(
+ sm.getString("filterDef.invalidFilterName", filterName));
+ }
this.filterName = filterName;
}
Modified: tomcat/trunk/java/org/apache/catalina/deploy/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/LocalStrings.properties?rev=1429969&r1=1429968&r2=1429969&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/deploy/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/LocalStrings.properties Mon Jan 7 19:08:58 2013
@@ -12,6 +12,9 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+filterDef.invalidFilterName=Invalid <filter-name> [{0}] in filter definition.
+
+servletDef.invalidServletName=Invalid <servlet-name> [{0}] in servlet definition.
webXml.duplicateEnvEntry=Duplicate env-entry name [{0}]
webXml.duplicateFilter=Duplicate filter name [{0}]
Modified: tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java?rev=1429969&r1=1429968&r2=1429969&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java Mon Jan 7 19:08:58 2013
@@ -25,6 +25,8 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import org.apache.tomcat.util.res.StringManager;
+
/**
* Representation of a servlet definition for a web application, as represented
@@ -35,6 +37,9 @@ public class ServletDef implements Seria
private static final long serialVersionUID = 1L;
+ private static final StringManager sm =
+ StringManager.getManager(Constants.Package);
+
// ------------------------------------------------------------- Properties
@@ -104,6 +109,10 @@ public class ServletDef implements Seria
}
public void setServletName(String servletName) {
+ if (servletName == null || servletName.equals("")) {
+ throw new IllegalArgumentException(
+ sm.getString("servletDef.invalidServletName", servletName));
+ }
this.servletName = servletName;
}
Modified: tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java?rev=1429969&r1=1429968&r2=1429969&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java (original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestApplicationContext.java Mon Jan 7 19:08:58 2013
@@ -18,6 +18,9 @@ package org.apache.catalina.core;
import java.io.File;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import org.junit.Assert;
@@ -69,4 +72,40 @@ public class TestApplicationContext exte
Assert.assertEquals(HttpServletResponse.SC_OK, rc);
Assert.assertTrue(res.toString().contains("<p>OK</p>"));
}
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddFilterWithFilterNameNull() {
+ getServletContext().addFilter(null, (Filter) null);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddFilterWithFilterNameEmptyString() {
+ getServletContext().addFilter("", (Filter) null);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddServletWithServletNameNull() {
+ getServletContext().addServlet(null, (Servlet) null);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testAddServletWithServletNameEmptyString() {
+ getServletContext().addServlet("", (Servlet) null);
+ }
+
+
+ private ServletContext getServletContext() {
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir = new File("test/webapp-3.0");
+ // app dir is relative to server home
+ StandardContext standardContext = (StandardContext) tomcat.addWebapp(
+ null, "/test", appDir.getAbsolutePath());
+
+ return standardContext.getServletContext();
+ }
}
Added: tomcat/trunk/test/org/apache/catalina/deploy/TestFilterDef.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/deploy/TestFilterDef.java?rev=1429969&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/deploy/TestFilterDef.java (added)
+++ tomcat/trunk/test/org/apache/catalina/deploy/TestFilterDef.java Mon Jan 7 19:08:58 2013
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.deploy;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test case for {@link FilterDef}.
+ */
+public class TestFilterDef {
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testSetFilterNameNull() {
+ new FilterDef().setFilterName(null);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testSetFilterNameEmptyString() {
+ new FilterDef().setFilterName("");
+ }
+
+ @Test
+ public void testSetFilterName() {
+ FilterDef filterDef = new FilterDef();
+ filterDef.setFilterName("test");
+ Assert.assertEquals("'test' is expected as filter name",
+ "test", filterDef.getFilterName());
+ }
+
+}
\ No newline at end of file
Propchange: tomcat/trunk/test/org/apache/catalina/deploy/TestFilterDef.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: tomcat/trunk/test/org/apache/catalina/deploy/TestServletDef.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/deploy/TestServletDef.java?rev=1429969&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/deploy/TestServletDef.java (added)
+++ tomcat/trunk/test/org/apache/catalina/deploy/TestServletDef.java Mon Jan 7 19:08:58 2013
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.deploy;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test case for {@link ServletDef}
+ */
+public class TestServletDef {
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testSetServletNameNull() {
+ new ServletDef().setServletName(null);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testSetServletNameEmptyString() {
+ new ServletDef().setServletName("");
+ }
+
+ @Test
+ public void testSetServletName() {
+ ServletDef servletDef = new ServletDef();
+ servletDef.setServletName("test");
+ Assert.assertEquals("'test' is expected as servlet name",
+ "test", servletDef.getServletName());
+ }
+
+}
\ No newline at end of file
Propchange: tomcat/trunk/test/org/apache/catalina/deploy/TestServletDef.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org