File tree Expand file tree Collapse file tree 2 files changed +11
-21
lines changed Expand file tree Collapse file tree 2 files changed +11
-21
lines changed Original file line number Diff line number Diff line change 6060
6161 - name : Test vncserver
6262 run : |
63- container_id=$(docker run -d -it -p 5901:5901 test vncserver -xstartup /opt/install/jupyter_remote_desktop_proxy/share/xstartup -verbose -fg -geometry 1680x1050 -SecurityTypes None -rfbport 5901 )
63+ container_id=$(docker run -d -it test vncserver -xstartup /opt/install/jupyter_remote_desktop_proxy/share/xstartup -verbose -fg -geometry 1680x1050 -SecurityTypes None -rfbport -1 -rfbunixpath /tmp/vncserver.socket )
6464 sleep 1
6565
6666 echo "::group::Install netcat, a test dependency"
7373 docker exec -it $container_id timeout --preserve-status 1 nc -v localhost 5901 2>&1 | tee -a /dev/stderr | \
7474 grep --quiet RFB && echo "Passed test" || { echo "Failed test" && TEST_OK=false; }
7575
76+ echo "::group::Check TCP ports not opened"
77+ ports=(5800 5801 5900 5901)
78+ for port in "${ports[@]}"
79+ do
80+ docker exec -it $container_id_insecure timeout --preserve-status 1 nc -vz localhost $port | \
81+ grep --quiet succeeded && { echo "Failed security check - port $port open" && TEST_OK=false; } || echo "Passed security check - port $port not opened"
82+ done
83+ echo "::endgroup::"
84+
7685 echo "::group::vncserver logs"
7786 docker exec $container_id bash -c 'cat ~/.vnc/*.log'
7887 echo "::endgroup::"
9099
91100 - name : Playwright browser test
92101 run : |
93- container_id=$(docker run -d -it -p 8888:8888 -e JUPYTER_TOKEN=secret test)
102+ container_id=$(docker run -d -it -p 8888:8888 -p 5800:5800 -p 5801:5801 -p 5900:5900 -p 5901:5901 - e JUPYTER_TOKEN=secret test)
94103 sleep 3
95104 export CONTAINER_ID=$container_id
96105 export JUPYTER_HOST=http://localhost:8888
Original file line number Diff line number Diff line change 1- import socket
21from os import getenv
32from pathlib import Path
43from shutil import which
@@ -39,22 +38,6 @@ def compare_screenshot(test_image):
3938 assert m < threshold
4039
4140
42- def assert_no_vncserver_tcp_port_open (host = "localhost" , port = 5901 , timeout = 1 ):
43- """
44- Test that a specific port is not open, which would be a security issue.
45- Returns:
46- True if the port is closed (secure), False if open (security issue)
47- """
48- sock = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
49- sock .settimeout (timeout )
50- result = sock .connect_ex ((host , port ))
51- sock .close ()
52-
53- # If result is 0, connection was successful (port is open - security issue)
54- # Otherwise, connection failed (port is closed - secure)
55- assert result != 0
56-
57-
5841# To debug this set environment variable HEADLESS=0
5942def test_desktop (browser ):
6043 page = browser
@@ -71,8 +54,6 @@ def test_desktop(browser):
7154 expect (page1 .get_by_text ("Status: Connected" )).to_be_visible ()
7255 expect (page1 .locator ("canvas" )).to_be_visible ()
7356
74- assert_no_vncserver_tcp_port_open ()
75-
7657 # Screenshot the desktop element only
7758 # May take a few seconds to load
7859 page1 .wait_for_timeout (5000 )
You can’t perform that action at this time.
0 commit comments