Author: niallp
Date: Mon Mar 6 16:07:59 2006
New Revision: 383720
URL: http://svn.apache.org/viewcvs?rev=383720&view=rev
Log:
Port Fix for Bug 38749 to 1.2.x branch - XSS vulnerability in
LookupDispatchAction - reported by Tommy Wareing
Modified:
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/ActionDispatcher.java
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/DispatchAction.java
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LocalStrings.properties
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LookupDispatchAction.java
Modified:
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/ActionDispatcher.java
URL:
http://svn.apache.org/viewcvs/struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/ActionDispatcher.java?rev=383720&r1=383719&r2=383720&view=diff
==============================================================================
---
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/ActionDispatcher.java
(original)
+++
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/ActionDispatcher.java
Mon Mar 6 16:07:59 2006
@@ -1,7 +1,7 @@
/*
* $Id$
*
- * Copyright 2005 The Apache Software Foundation.
+ * Copyright 2005-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -309,7 +309,10 @@
String message =
messages.getMessage("dispatch.method", mapping.getPath(),
name);
log.error(message, e);
- throw e;
+
+ String userMsg =
+ messages.getMessage("dispatch.method.user", mapping.getPath());
+ throw new NoSuchMethodException(userMsg);
}
return dispatchMethod(mapping, form, request, response, name, method);
Modified:
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/DispatchAction.java
URL:
http://svn.apache.org/viewcvs/struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/DispatchAction.java?rev=383720&r1=383719&r2=383720&view=diff
==============================================================================
---
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/DispatchAction.java
(original)
+++
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/DispatchAction.java
Mon Mar 6 16:07:59 2006
@@ -1,7 +1,7 @@
/*
* $Id$
*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -265,7 +265,10 @@
String message =
messages.getMessage("dispatch.method", mapping.getPath(),
name);
log.error(message, e);
- throw e;
+
+ String userMsg =
+ messages.getMessage("dispatch.method.user", mapping.getPath());
+ throw new NoSuchMethodException(userMsg);
}
ActionForward forward = null;
Modified:
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LocalStrings.properties
URL:
http://svn.apache.org/viewcvs/struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LocalStrings.properties?rev=383720&r1=383719&r2=383720&view=diff
==============================================================================
---
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LocalStrings.properties
(original)
+++
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LocalStrings.properties
Mon Mar 6 16:07:59 2006
@@ -4,9 +4,10 @@
dispatch.lookup=Action[{0}] does not contain handler for resource '{1}'
dispatch.mapping=ActionMapping[{0}] is not of type DispatchMapping
dispatch.method=Action[{0}] does not contain method named '{1}'
+dispatch.method.user=Action[{0}] does not contain specified method (check logs)
dispatch.parameter=Request[{0}] does not contain handler parameter named
'{1}'. This may be caused by whitespace in the label text.
dispatch.return=Action[{0}] invalid return type for method '{1}'
-dispatch.resource=Action[{0}] missing resource '{1}' in key method map
+dispatch.resource=Action[{0}] missing resource in key method map
forward.path=No context-relative URI specified via the 'parameter' attribute
forward.rd=Cannot create request dispatcher for path '{0}'
include.path=No context-relative URI specified via the 'parameter' attribute
Modified:
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LookupDispatchAction.java
URL:
http://svn.apache.org/viewcvs/struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LookupDispatchAction.java?rev=383720&r1=383719&r2=383720&view=diff
==============================================================================
---
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LookupDispatchAction.java
(original)
+++
struts/action/branches/STRUTS_1_2_BRANCH/src/share/org/apache/struts/actions/LookupDispatchAction.java
Mon Mar 6 16:07:59 2006
@@ -1,7 +1,7 @@
/*
* $Id$
*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,6 +27,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
@@ -109,6 +111,11 @@
public abstract class LookupDispatchAction extends DispatchAction {
/**
+ * Commons Logging instance.
+ */
+ private static Log LOG = LogFactory.getLog(LookupDispatchAction.class);
+
+ /**
* Reverse lookup map from resource value to resource key.
*/
protected Map localeMap = new HashMap();
@@ -235,8 +242,9 @@
// Find the key for the resource
String key = (String) lookupMap.get(keyName);
if (key == null) {
- String message = messages.getMessage(
- "dispatch.resource", mapping.getPath(), keyName);
+ String message =
+ messages.getMessage("dispatch.resource", mapping.getPath());
+ LOG.error(message + " '" + keyName + "'");
throw new ServletException(message);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]