From: John W. <jwe...@us...> - 2009-10-26 22:57:28
|
Update of /cvsroot/dlsciences/dlese-tools-project/src/org/dlese/dpc/repository/action/form In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28202/src/org/dlese/dpc/repository/action/form Modified Files: RepositoryForm.java Log Message: -Added more robust badArgument checking of OAI requests. Returns badArgument if a requested argument is not valid in OAI-PMH. Index: RepositoryForm.java =================================================================== RCS file: /cvsroot/dlsciences/dlese-tools-project/src/org/dlese/dpc/repository/action/form/RepositoryForm.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** RepositoryForm.java 20 Mar 2009 23:33:54 -0000 1.14 --- RepositoryForm.java 26 Oct 2009 22:57:16 -0000 1.15 *************** *** 50,55 **** */ public class RepositoryForm extends VocabForm implements Serializable { - boolean badVerbOrArgument = false; ArrayList errors = null; private static boolean debug = false; //private static ServletContext servletContext = null; --- 50,56 ---- */ public class RepositoryForm extends VocabForm implements Serializable { ArrayList errors = null; + + private boolean hasBadVerbArgument = false; private static boolean debug = false; //private static ServletContext servletContext = null; *************** *** 63,86 **** // Bean properties: ! /** DESCRIPTION */ protected String exampleID = null; ! /** DESCRIPTION */ protected String ProtocolVersion = null; ! /** DESCRIPTION */ protected String providerStatus = null; ! //protected ArrayList adminEmails = null; ! /** DESCRIPTION */ protected String earliestDatestamp = null; ! /** DESCRIPTION */ protected String deletedRecord = null; ! /** DESCRIPTION */ protected String granularity = null; ! /** DESCRIPTION */ protected ArrayList compressions = null; ! /** DESCRIPTION */ protected Hashtable metadataFormats = null; ! /** DESCRIPTION */ protected String record = null; - /** DESCRIPTION */ // OAI-PMH data: --- 64,86 ---- // Bean properties: ! /** exampleID */ protected String exampleID = null; ! /** ProtocolVersion */ protected String ProtocolVersion = null; ! /** providerStatus */ protected String providerStatus = null; ! ! /** earliestDatestamp */ protected String earliestDatestamp = null; ! /** deletedRecord */ protected String deletedRecord = null; ! /** granularity */ protected String granularity = null; ! /** compressions */ protected ArrayList compressions = null; ! /** metadataFormats */ protected Hashtable metadataFormats = null; ! /** record */ protected String record = null; // OAI-PMH data: *************** *** 186,192 **** //prtln("getOAIRequestTag()"); ! ! // If bad verb or arg or no args whatsoever... ! if (badVerbOrArgument || !req.getParameterNames().hasMoreElements()) return ("<request>" + getBaseURL() + "</request>\n"); --- 186,194 ---- //prtln("getOAIRequestTag()"); ! ! String verb = req.getParameter("verb"); ! ! // If no verb arg, bad verb or no args whatsoever... ! if (verb == null || hasBadVerbArgument || !req.getParameterNames().hasMoreElements()) return ("<request>" + getBaseURL() + "</request>\n"); *************** *** 210,214 **** param = (String) params.nextElement(); values = req.getParameterValues(param); ! if (!param.equals("verb") && !param.equals("rt") && !param.equals("validate")) { if (param.equals("set") && values[0].startsWith("dleseodlsearch")) { --- 212,216 ---- param = (String) params.nextElement(); values = req.getParameterValues(param); ! if (!param.equals("verb") && !param.equals("rt") && OAIArgs.ALL_VALID_OAI_ARGUMENTS_MAP.containsKey(param)) { if (param.equals("set") && values[0].startsWith("dleseodlsearch")) { *************** *** 246,250 **** errors.add(new OAIError(error, message)); ! badVerbOrArgument = (error.equals(OAICodes.BAD_ARGUMENT) || error.equals(OAICodes.BAD_VERB)); } --- 248,253 ---- errors.add(new OAIError(error, message)); ! if(!hasBadVerbArgument) ! hasBadVerbArgument = (error.equals(OAICodes.BAD_VERB)); } |