- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 18 Sep 2009 14:58:00 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action In directory hutz:/tmp/cvs-serv2102/src/org/w3c/unicorn/action Modified Files: ObserveAction.java Log Message: lots of input parameters checks have been moved to InputParameter classes Index: ObserveAction.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/ObserveAction.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- ObserveAction.java 17 Sep 2009 17:28:23 -0000 1.34 +++ ObserveAction.java 18 Sep 2009 14:57:58 -0000 1.35 @@ -12,7 +12,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.regex.Pattern; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; @@ -134,7 +133,6 @@ if (key.startsWith(paramPrefix)) { String paramName = key.substring(paramPrefix.length()); - if (paramName.equals("lang")) { logger.trace("Lang parameter: " + key + " - " + (String) reqParams.get(key)); String lang = getLanguage((String) reqParams.get(key), req, null); @@ -162,41 +160,16 @@ mapOfOutputParameter.put(paramName, (String) reqParams.get(key)); } else if (paramName.equals("uri")) { logger.trace("Uri parameter: " + key + " - " + (String) reqParams.get(key)); - String uri = (String) reqParams.get(key); - // To allow other protocols change (https?) to (https?|ftp|rmtp) for example - Pattern urlPattern = Pattern.compile("^(https?)://([A-Z0-9][A-Z0-9_-]*)(\\.[A-Z0-9][A-Z0-9_-]*)*(:(\\d+))?([/#]\\p{ASCII}*)?", Pattern.CASE_INSENSITIVE); - if (!urlPattern.matcher(uri).matches()) { - if (uri.equals("")) - continue; - if (!uri.contains("://")) { - uri = "http://" + uri; - } else { - Message mess = new Message(Message.Level.ERROR, "Unicorn does not support " + uri.split("://")[0] + " protocol.", null); - createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); - return; - } - reqParams.put(key, uri); - if (!urlPattern.matcher(uri).matches()) { - Message mess = new Message(Message.Level.ERROR, "$message_invalid_url_syntax " + uri, null); - createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); - return; - } - } - //aUnicornCall.setEnumInputMethod(EnumInputMethod.URI); - //aUnicornCall.setDocumentName(uri); - aUnicornCall.setInputParameter(new URIInputParameter(uri)); + aUnicornCall.setInputParameter(new URIInputParameter((String) reqParams.get(key))); } else if (paramName.equals("text")) { logger.trace("Text parameter: " + key + " - " + (String) reqParams.get(key)); - //aUnicornCall.setEnumInputMethod(EnumInputMethod.DIRECT); aUnicornCall.setInputParameter(new DirectInputParameter((String) reqParams.get(key), (String) reqParams.get(paramPrefix + "text_mime"))); } else if (paramName.equals("file")) { logger.trace("File parameter: " + key + " - " + reqParams.get(key).toString()); Object object = reqParams.get(key); if (object instanceof FileItem) { aFileItemUploaded = (FileItem) object; - //aUnicornCall.setDocumentName(aFileItemUploaded.getName()); aUnicornCall.setInputParameter(new UploadInputParameter(aFileItemUploaded)); - //aUnicornCall.setEnumInputMethod(EnumInputMethod.UPLOAD); } else { // should be impossible (see getRequestParameters) logger.warn("ucn_file is not of type FileItem!"); @@ -229,29 +202,7 @@ mapOfStringObject.put("default_task", Framework.mapOfTask.get(Framework.mapOfTask.getDefaultTaskId())); aUnicornCall.setTask(task); } - if (reqParams.containsKey(paramPrefix + "uri")) { - if (reqParams.get(paramPrefix + "uri").equals("")) { - Message mess = new Message(Message.Level.ERROR, "$message_empty_uri", null); - createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); - return; - } - } else if (reqParams.containsKey(paramPrefix + "text")) { - if (reqParams.get(paramPrefix + "text").equals("")) { - Message mess = new Message(Message.Level.ERROR, "$message_empty_direct_input", null); - createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); - return; - } else if (!reqParams.containsKey(paramPrefix + "text_mime")) { - Message mess = new Message(Message.Level.ERROR, "$message_missing_mime_type", null); - createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); - return; - } - } else if (reqParams.containsKey(paramPrefix + "file")) { - if (((FileItem) reqParams.get(paramPrefix + "file")).getSize() == 0) { - Message mess = new Message(Message.Level.ERROR, "$message_no_or_empty_file", null); - createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); - return; - } - } else { + if (!reqParams.containsKey(paramPrefix + "uri") && !reqParams.containsKey(paramPrefix + "text") && !reqParams.containsKey(paramPrefix + "file")) { Message mess = new Message(Message.Level.ERROR, "$message_nothing_to_validate", null); createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); return; @@ -279,16 +230,18 @@ aUnicornCall.doTask(); createOutput(req, resp, mapOfStringObject, aUnicornCall, mapOfSpecificParameter, mapOfOutputParameter); } catch (final UnicornException ucnException) { - Message mess = ucnException.getUnicornMessage(); + Message mess; + if (ucnException.getUnicornMessage() != null) + mess = ucnException.getUnicornMessage(); + else + mess = new Message(Message.Level.ERROR, ucnException.getMessage(), null); createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter); } catch (final Exception aException) { logger.error("Exception : " + aException.getMessage(), aException); createError(req, resp, reqParams, new Message(aException), mapOfSpecificParameter, mapOfOutputParameter); } finally { - if ("true".equals(Property.get("DELETE_UPLOADED_FILES")) - && aFileItemUploaded != null) { + if ("true".equals(Property.get("DELETE_UPLOADED_FILES")) && aFileItemUploaded != null) aFileItemUploaded.delete(); - } } }
Received on Friday, 18 September 2009 14:58:11 UTC