Skip to content

Commit 18ad3ff

Browse files
committed
fix(langserver): disable directory browsing in documentation server
1 parent 1a2b24e commit 18ad3ff

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

packages/language_server/src/robotcode/language_server/robotframework/parts/code_action_documentation.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
from __future__ import annotations
22

33
import contextlib
4+
import io
45
import multiprocessing as mp
56
import socket
67
import threading
78
import traceback
89
import urllib.parse
910
from concurrent.futures import ProcessPoolExecutor
1011
from dataclasses import dataclass
12+
from http import HTTPStatus
1113
from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
14+
from os import PathLike
1215
from string import Template
1316
from threading import Thread
1417
from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Union, cast
@@ -115,6 +118,14 @@ def log_message(self, format: str, *args: Any) -> None:
115118
def log_error(self, format: str, *args: Any) -> None:
116119
self._logger.error(lambda: f"{self.address_string()} - {format % args}")
117120

121+
def list_directory(self, _path: Union[str, PathLike[str]]) -> io.BytesIO | None:
122+
self.send_error(
123+
HTTPStatus.FORBIDDEN,
124+
"You don't have permission to access this resource.",
125+
"Directory browsing is not allowed.",
126+
)
127+
return None
128+
118129
def do_GET(self) -> None: # noqa: N802
119130
query = parse_qs(urlparse(self.path).query)
120131
name = n[0] if (n := query.get("name", [])) else None

0 commit comments

Comments
 (0)