From 031098fa01334e88b96a4801fb4cc2dda6d8ae80 Mon Sep 17 00:00:00 2001 From: John Lindal Date: Fri, 6 Jan 2012 23:19:32 +0000 Subject: [PATCH] WW-3740 apply allowed-methods filter to wildcard actions git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1228497 13f79535-47bb-0310-9956-ffa450edef68 --- .../xwork2/config/impl/ActionConfigMatcher.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java b/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java index 3058b032c..b92e420a6 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/ActionConfigMatcher.java @@ -109,13 +109,17 @@ public class ActionConfigMatcher extends AbstractMatcher implement */ @Override public ActionConfig convert(String path, ActionConfig orig, Map vars) { - - String className = convertParam(orig.getClassName(), vars); + String methodName = convertParam(orig.getMethodName(), vars); + if (!orig.isAllowedMethod(methodName)) { + return null; + } + + String className = convertParam(orig.getClassName(), vars); String pkgName = convertParam(orig.getPackageName(), vars); - + Map params = replaceParameters(orig.getParams(), vars); - + Map results = new LinkedHashMap(); for (String name : orig.getResults().keySet()) { ResultConfig result = orig.getResults().get(name); @@ -125,7 +129,7 @@ public class ActionConfigMatcher extends AbstractMatcher implement .build(); results.put(name, r); } - + List exs = new ArrayList(); for (ExceptionMappingConfig ex : orig.getExceptionMappings()) { String name = convertParam(ex.getName(), vars); @@ -135,7 +139,7 @@ public class ActionConfigMatcher extends AbstractMatcher implement ExceptionMappingConfig e = new ExceptionMappingConfig.Builder(name, exClassName, exResult).addParams(exParams).build(); exs.add(e); } - + return new ActionConfig.Builder(pkgName, orig.getName(), className) .methodName(methodName) .addParams(params)