public String getVariableValue(String variableName, String encoding) { String lowerCaseVariableName = variableName.toLowerCase(Locale.ENGLISH); String variableValue = null; if (!isNameReserved(lowerCaseVariableName)) { //Try getting it externally first, if it fails, try getting the // 'built-in' // value variableValue = ssiExternalResolver.getVariableValue(variableName); if (variableValue == null) { variableName = variableName.toUpperCase(Locale.ENGLISH); variableValue = ssiExternalResolver .getVariableValue(className + "." + variableName); } if (variableValue != null) { variableValue = encode(variableValue, encoding); } } return variableValue; }
/** * @see SSICommand */ @Override public long process(SSIMediator ssiMediator, String commandName, String[] paramNames, String[] paramValues, PrintWriter writer) { for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; String paramValue = paramValues[i]; String substitutedValue = ssiMediator .substituteVariables(paramValue); if (paramName.equalsIgnoreCase("errmsg")) { ssiMediator.setConfigErrMsg(substitutedValue); } else if (paramName.equalsIgnoreCase("sizefmt")) { ssiMediator.setConfigSizeFmt(substitutedValue); } else if (paramName.equalsIgnoreCase("timefmt")) { ssiMediator.setConfigTimeFmt(substitutedValue); } else { ssiMediator.log("#config--Invalid attribute: " + paramName); //We need to fetch this value each time, since it may change // during the // loop String configErrMsg = ssiMediator.getConfigErrMsg(); writer.write(configErrMsg); } } // Setting config options doesn't really change the page return 0; } }
String[] paramNames, String[] paramValues, PrintWriter writer) { long lastModified = 0; String configErrMsg = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; String paramValue = paramValues[i]; String substitutedValue = ssiMediator .substituteVariables(paramValue); try { if (paramName.equalsIgnoreCase("file") || paramName.equalsIgnoreCase("virtual")) { boolean virtual = paramName.equalsIgnoreCase("virtual"); lastModified = ssiMediator.getFileLastModified( substitutedValue, virtual); long size = ssiMediator.getFileSize(substitutedValue, virtual); String configSizeFmt = ssiMediator.getConfigSizeFmt(); writer.write(formatSize(size, configSizeFmt)); } else { ssiMediator.log("#fsize--Invalid attribute: " + paramName); writer.write(configErrMsg); ssiMediator.log("#fsize--Couldn't get size for file: " + substitutedValue, e); writer.write(configErrMsg);
String[] paramNames, String[] paramValues, PrintWriter writer) { long lastModified = 0; String configErrMsg = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; String paramValue = paramValues[i]; String substitutedValue = ssiMediator .substituteVariables(paramValue); try { if (paramName.equalsIgnoreCase("file") || paramName.equalsIgnoreCase("virtual")) { boolean virtual = paramName.equalsIgnoreCase("virtual"); lastModified = ssiMediator.getFileLastModified( substitutedValue, virtual); String text = ssiMediator.getFileText(substitutedValue, virtual); writer.write(text); } else { ssiMediator.log("#include--Invalid attribute: " + paramName); writer.write(configErrMsg); ssiMediator.log("#include--Couldn't include file: " + substitutedValue, e); writer.write(configErrMsg);
String[] paramNames, String[] paramValues, PrintWriter writer) { long lastModified = 0; String configErrMsg = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; String paramValue = paramValues[i]; String substitutedValue = ssiMediator .substituteVariables(paramValue); try { if (paramName.equalsIgnoreCase("file") || paramName.equalsIgnoreCase("virtual")) { boolean virtual = paramName.equalsIgnoreCase("virtual"); lastModified = ssiMediator.getFileLastModified( substitutedValue, virtual); Date date = new Date(lastModified); String configTimeFmt = ssiMediator.getConfigTimeFmt(); writer.write(formatDate(date, configTimeFmt)); } else { ssiMediator.log("#flastmod--Invalid attribute: " + paramName); writer.write(configErrMsg); ssiMediator.log( "#flastmod--Couldn't get last modified for file: " + substitutedValue, e);
SSIMediator ssiMediator = new SSIMediator(ssiExternalResolver, lastModifiedDate); StringWriter stringWriter = new StringWriter(); command.setLength(0); //clear the command string } else { if (!ssiMediator.getConditionalState().processConditionalCommandsOnly) { writer.write(c); String configErrMsg = ssiMediator.getConfigErrMsg(); SSICommand ssiCommand = commands.get(strCmd.toLowerCase(Locale.ENGLISH)); if (!ssiMediator.getConditionalState().processConditionalCommandsOnly || ssiCommand instanceof SSIConditional) { long lmd = ssiCommand.process(ssiMediator, strCmd,
protected void setDateVariables(boolean fromConstructor) { boolean alreadySet = ssiExternalResolver.getVariableValue(className + ".alreadyset") != null; //skip this if we are being called from the constructor, and this has // already // been set if (!(fromConstructor && alreadySet)) { ssiExternalResolver.setVariableValue(className + ".alreadyset", "true"); Date date = new Date(); TimeZone timeZone = TimeZone.getTimeZone("GMT"); String retVal = formatDate(date, timeZone); //If we are setting on of the date variables, we want to remove // them from the // user //defined list of variables, because this is what Apache does setVariableValue("DATE_GMT", null); ssiExternalResolver.setVariableValue(className + ".DATE_GMT", retVal); retVal = formatDate(date, null); setVariableValue("DATE_LOCAL", null); ssiExternalResolver.setVariableValue(className + ".DATE_LOCAL", retVal); retVal = formatDate(new Date(lastModifiedDate), null); setVariableValue("LAST_MODIFIED", null); ssiExternalResolver.setVariableValue(className + ".LAST_MODIFIED", retVal); } }
String errorMessage = ssiMediator.getConfigErrMsg(); writer.write(errorMessage); } else { Collection<String> variableNames = ssiMediator.getVariableNames(); for (String variableName : variableNames) { String variableValue = ssiMediator .getVariableValue(variableName);
throws SSIStopProcessingException { long lastModified = 0; String errorMessage = ssiMediator.getConfigErrMsg(); String variableName = null; for (int i = 0; i < paramNames.length; i++) { if (variableName != null) { String substitutedValue = ssiMediator .substituteVariables(paramValue); ssiMediator.setVariableValue(variableName, substitutedValue); lastModified = System.currentTimeMillis(); } else { ssiMediator.log("#set--no variable specified"); writer.write(errorMessage); throw new SSIStopProcessingException(); ssiMediator.log("#set--Invalid attribute: " + paramName); writer.write(errorMessage); throw new SSIStopProcessingException();
String encoding = DEFAULT_ENCODING; String originalValue = null; String errorMessage = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; encoding = paramValue; } else { ssiMediator.log("#echo--Invalid encoding: " + paramValue); writer.write(errorMessage); ssiMediator.log("#echo--Invalid attribute: " + paramName); writer.write(errorMessage); String variableValue = ssiMediator.getVariableValue( originalValue, encoding); if (variableValue == null) {
SSIConditionalState state = ssiMediator.getConditionalState(); if ("if".equalsIgnoreCase(commandName)) {
private String getEncodedConfigErrorMessage(SSIMediator ssiMediator) { String errorMessage = ssiMediator.getConfigErrMsg(); return HtmlEntityEncoder.encodeXSS(errorMessage); } }
String[] paramNames, String[] paramValues, PrintWriter writer) { long lastModified = 0; String configErrMsg = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; String paramValue = paramValues[i]; String substitutedValue = ssiMediator .substituteVariables(paramValue); try { if (paramName.equalsIgnoreCase("file") || paramName.equalsIgnoreCase("virtual")) { boolean virtual = paramName.equalsIgnoreCase("virtual"); lastModified = ssiMediator.getFileLastModified( substitutedValue, virtual); Date date = new Date(lastModified); String configTimeFmt = ssiMediator.getConfigTimeFmt(); writer.write(formatDate(date, configTimeFmt)); } else { ssiMediator.log("#flastmod--Invalid attribute: " + paramName); writer.write(configErrMsg); ssiMediator.log( "#flastmod--Couldn't get last modified for file: " + substitutedValue, e);
String[] paramNames, String[] paramValues, PrintWriter writer) { long lastModified = 0; String configErrMsg = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; String paramValue = paramValues[i]; String substitutedValue = ssiMediator .substituteVariables(paramValue); try { if (paramName.equalsIgnoreCase("file") || paramName.equalsIgnoreCase("virtual")) { boolean virtual = paramName.equalsIgnoreCase("virtual"); lastModified = ssiMediator.getFileLastModified( substitutedValue, virtual); String text = ssiMediator.getFileText(substitutedValue, virtual); writer.write(text); } else { ssiMediator.log("#include--Invalid attribute: " + paramName); writer.write(configErrMsg); ssiMediator.log("#include--Couldn't include file: " + substitutedValue, e); writer.write(configErrMsg);
SSIMediator ssiMediator = new SSIMediator(ssiExternalResolver, lastModifiedDate, debug); StringWriter stringWriter = new StringWriter(); command.setLength(0); //clear the command string } else { if (!ssiMediator.getConditionalState().processConditionalCommandsOnly) { writer.write(c); String configErrMsg = ssiMediator.getConfigErrMsg(); SSICommand ssiCommand = commands.get(strCmd.toLowerCase(Locale.ENGLISH)); if (!ssiMediator.getConditionalState().processConditionalCommandsOnly || ssiCommand instanceof SSIConditional) { long lmd = ssiCommand.process(ssiMediator, strCmd,
protected void setDateVariables(boolean fromConstructor) { boolean alreadySet = ssiExternalResolver.getVariableValue(className + ".alreadyset") != null; //skip this if we are being called from the constructor, and this has // already // been set if (!(fromConstructor && alreadySet)) { ssiExternalResolver.setVariableValue(className + ".alreadyset", "true"); Date date = new Date(); TimeZone timeZone = TimeZone.getTimeZone("GMT"); String retVal = formatDate(date, timeZone); //If we are setting on of the date variables, we want to remove // them from the // user //defined list of variables, because this is what Apache does setVariableValue("DATE_GMT", null); ssiExternalResolver.setVariableValue(className + ".DATE_GMT", retVal); retVal = formatDate(date, null); setVariableValue("DATE_LOCAL", null); ssiExternalResolver.setVariableValue(className + ".DATE_LOCAL", retVal); retVal = formatDate(new Date(lastModifiedDate), null); setVariableValue("LAST_MODIFIED", null); ssiExternalResolver.setVariableValue(className + ".LAST_MODIFIED", retVal); } } }
String errorMessage = ssiMediator.getConfigErrMsg(); writer.write(errorMessage); } else { Collection<String> variableNames = ssiMediator.getVariableNames(); for (String variableName : variableNames) { String variableValue = ssiMediator .getVariableValue(variableName);
String encoding = DEFAULT_ENCODING; String originalValue = null; String errorMessage = ssiMediator.getConfigErrMsg(); for (int i = 0; i < paramNames.length; i++) { String paramName = paramNames[i]; encoding = paramValue; } else { ssiMediator.log("#echo--Invalid encoding: " + paramValue); writer.write(errorMessage); ssiMediator.log("#echo--Invalid attribute: " + paramName); writer.write(errorMessage); String variableValue = ssiMediator.getVariableValue( originalValue, encoding); if (variableValue == null) {
SSIConditionalState state = ssiMediator.getConditionalState(); if ("if".equalsIgnoreCase(commandName)) {
private String getEncodedConfigErrorMessage(SSIMediator ssiMediator) { String configErrMsg = ssiMediator.getConfigErrMsg(); return HtmlEntityEncoder.encodeXSS(configErrMsg); } }