cleanup
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 13 May 2016 13:55:57 +0000 (15:55 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 13 May 2016 13:55:57 +0000 (15:55 +0200)
platform/built-in-server/src/org/jetbrains/builtInWebServer/DefaultWebServerPathHandler.kt

index 2b2a53cdfb0aa2c36ed95f26df83b281ed3e7470..b81fac71a33212709e14f89a21769c73b9f9b1e2 100644 (file)
@@ -44,14 +44,14 @@ private class DefaultWebServerPathHandler : WebServerPathHandler() {
     val channel = context.channel()
 
     val isSignedRequest = request.isSignedRequest()
-    val extraHttpHeaders = validateToken(request, channel, isSignedRequest) ?: return true
+    val extraHeaders = validateToken(request, channel, isSignedRequest) ?: return true
 
     val pathToFileManager = WebServerPathToFileManager.getInstance(project)
     var pathInfo = pathToFileManager.pathToInfoCache.getIfPresent(path)
     if (pathInfo == null || !pathInfo.isValid) {
       pathInfo = pathToFileManager.doFindByRelativePath(path)
       if (pathInfo == null) {
-        HttpResponseStatus.NOT_FOUND.send(channel, request, if (path.isEmpty()) "Index file doesn't exist." else null, extraHttpHeaders)
+        HttpResponseStatus.NOT_FOUND.send(channel, request, extraHeaders = extraHeaders)
         return true
       }
 
@@ -70,13 +70,13 @@ private class DefaultWebServerPathHandler : WebServerPathHandler() {
       }
 
       if (indexFile == null && indexVirtualFile == null) {
-        HttpResponseStatus.NOT_FOUND.send(channel, request, extraHeaders = extraHttpHeaders)
+        HttpResponseStatus.NOT_FOUND.send(channel, request, extraHeaders = extraHeaders)
         return true
       }
 
       // we must redirect only after index file check to not expose directory status
       if (!endsWithSlash(decodedRawPath)) {
-        redirectToDirectory(request, channel, if (isCustomHost) path else "$projectName/$path", extraHttpHeaders)
+        redirectToDirectory(request, channel, if (isCustomHost) path else "$projectName/$path", extraHeaders)
         return true
       }
 
@@ -87,7 +87,7 @@ private class DefaultWebServerPathHandler : WebServerPathHandler() {
 
     // if extraHttpHeaders is not empty, it means that we get request wih token in the query
     if (!isSignedRequest && request.origin == null && request.referrer == null && request.isRegularBrowser() && !canBeAccessedDirectly(pathInfo.name)) {
-      HttpResponseStatus.NOT_FOUND.send(channel, request)
+      HttpResponseStatus.FORBIDDEN.orInSafeMode(HttpResponseStatus.NOT_FOUND).send(channel, request)
       return true
     }
 
@@ -99,7 +99,7 @@ private class DefaultWebServerPathHandler : WebServerPathHandler() {
         // FallbackResource feature in action, /login requested, /index.php retrieved, we must not redirect /login to /login/
         val parentPath = getParentPath(pathInfo.path)
         if (parentPath != null && endsWithName(path, PathUtilRt.getFileName(parentPath))) {
-          redirectToDirectory(request, channel, if (isCustomHost) path else "$projectName/$path", extraHttpHeaders)
+          redirectToDirectory(request, channel, if (isCustomHost) path else "$projectName/$path", extraHeaders)
           return true
         }
       }
@@ -112,14 +112,14 @@ private class DefaultWebServerPathHandler : WebServerPathHandler() {
     val canonicalPath = if (indexUsed) "$path/${pathInfo.name}" else path
     for (fileHandler in WebServerFileHandler.EP_NAME.extensions) {
       LOG.catchAndLog {
-        if (fileHandler.process(pathInfo!!, canonicalPath, project, request, channel, if (isCustomHost) null else projectName, extraHttpHeaders)) {
+        if (fileHandler.process(pathInfo!!, canonicalPath, project, request, channel, if (isCustomHost) null else projectName, extraHeaders)) {
           return true
         }
       }
     }
 
     // we registered as a last handler, so, we should just return 404 and send extra headers
-    HttpResponseStatus.NOT_FOUND.send(channel, request, extraHeaders = extraHttpHeaders)
+    HttpResponseStatus.NOT_FOUND.send(channel, request, extraHeaders = extraHeaders)
     return true
   }
 }