From c09122edb15d622c685aaaa65677e8ab96702c17 Mon Sep 17 00:00:00 2001 From: markt Date: Fri, 12 Jun 2009 16:45:34 +0000 Subject: [PATCH] More error checking git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@784188 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/naming/resources/BaseDirContext.java | 14 +++++++++++--- java/org/apache/naming/resources/LocalStrings.properties | 2 ++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/java/org/apache/naming/resources/BaseDirContext.java b/java/org/apache/naming/resources/BaseDirContext.java index 625861898..3b6f9d0c8 100644 --- a/java/org/apache/naming/resources/BaseDirContext.java +++ b/java/org/apache/naming/resources/BaseDirContext.java @@ -202,12 +202,20 @@ public abstract class BaseDirContext implements DirContext { if (kv.length != 2 || kv[0].length() == 0 || kv[1].length() == 0) throw new IllegalArgumentException( sm.getString("resources.invalidAliasMapping", kvp)); - + + File aliasLoc = new File(kv[1]); + if (!aliasLoc.exists()) { + throw new IllegalArgumentException( + sm.getString("resources.invalidAliasNotExist", kv[1])); + } BaseDirContext context; - if (kv[1].endsWith(".war") && !(new File(kv[1]).isDirectory())) { + if (kv[1].endsWith(".war") && !(aliasLoc.isDirectory())) { context = new WARDirContext(); - } else { + } else if (aliasLoc.isDirectory()) { context = new FileDirContext(); + } else { + throw new IllegalArgumentException( + sm.getString("resources.invalidAliasFile", kv[1])); } context.setDocBase(kv[1]); addAlias(kv[0], context); diff --git a/java/org/apache/naming/resources/LocalStrings.properties b/java/org/apache/naming/resources/LocalStrings.properties index 51aceeb37..a58644193 100644 --- a/java/org/apache/naming/resources/LocalStrings.properties +++ b/java/org/apache/naming/resources/LocalStrings.properties @@ -30,6 +30,8 @@ resources.bindFailed=Bind failed: {0} resources.unbindFailed=Unbind failed: {0} resources.invalidAliasPath=The alias path ''{0}'' must start with ''/'' resources.invalidAliasMapping=The alias mapping ''{0}'' is not valid +resources.invalidAliasNotExist=The alias location ''{0}'' does not exist +resources.invalidAliasFile=The alias location ''{0}'' points to a file that is not a WAR file standardResources.alreadyStarted=Resources has already been started standardResources.directory=File base {0} is not a directory standardResources.exists=File base {0} does not exist -- 2.11.0