@Override public String intercept(ActionInvocation invocation) throws Exception { Map<String, Object> parameters = invocation.getInvocationContext().getParameters(); HashSet<String> paramsToRemove = new HashSet<String>(); Map<String, Boolean> includesExcludesMap = getIncludesExcludesMap(); for (String param : parameters.keySet()) { boolean currentAllowed = !isDefaultBlock(); for (String currRule : includesExcludesMap.keySet()) { if (param.startsWith(currRule) && (param.length() == currRule.length() || isPropSeperator(param.charAt(currRule.length())))) { currentAllowed = includesExcludesMap.get(currRule).booleanValue(); } } if (!currentAllowed) { paramsToRemove.add(param); } } if (LOG.isDebugEnabled()) { LOG.debug("Params to remove: " + paramsToRemove); } for (Object aParamsToRemove : paramsToRemove) { parameters.remove(aParamsToRemove); } return invocation.invoke(); }