55 - master
66 - stable*
77 paths :
8- - ' apps/files_external/**'
8+ - " apps/files_external/**"
9+ - " .github/workflows/smb-kerberos.yml"
910 pull_request :
1011 paths :
11- - ' apps/files_external/**'
12+ - " apps/files_external/**"
13+ - " .github/workflows/smb-kerberos.yml"
1214
1315jobs :
1416 smb-kerberos-tests :
1921 strategy :
2022 fail-fast : false
2123 matrix :
22- php-versions : [' 7.4', ' 8.0' ]
24+ php-versions : [" 7.4", " 8.0" ]
2325
24- name : php${{ matrix.php-versions }}-${{ matrix.ftpd }}
26+ name : smb-kerberos-sso
2527
2628 steps :
2729 - name : Checkout server
3537 docker pull icewind1991/samba-krb-test-client
3638 - name : Setup AD-DC
3739 run : |
40+ cp apps/files_external/tests/*.sh .
3841 mkdir data
3942 sudo chown -R 33 data apps config
40- apps/files_external/tests/setup-krb.sh
43+ DC_IP=$(./start-dc.sh)
44+ ./start-apache.sh $DC_IP $PWD
45+ echo "DC_IP=$DC_IP" >> $GITHUB_ENV
4146 - name : Set up Nextcloud
4247 run : |
4348 docker exec --user 33 apache ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
4651 # setup user_saml
4752 docker exec --user 33 apache ./occ app:enable user_saml --force
4853 docker exec --user 33 apache ./occ config:app:set user_saml type --value 'environment-variable'
49- docker exec --user 33 apache ./occ config:app:set user_saml general-uid_mapping --value REMOTE_USER
54+ docker exec --user 33 apache ./occ saml:config:create
55+ docker exec --user 33 apache ./occ saml:config:set 1 --general-uid_mapping=REMOTE_USER
5056
5157 # setup external storage
5258 docker exec --user 33 apache ./occ app:enable files_external --force
@@ -56,19 +62,16 @@ jobs:
5662 docker exec --user 33 apache ./occ files_external:list
5763 - name : Test SSO
5864 run : |
59- mkdir cookies
60- chmod 0777 cookies
65+ mkdir /tmp/shared/ cookies
66+ chmod 0777 /tmp/shared/ cookies
6167
62- DC_IP=$(docker inspect dc --format '{{.NetworkSettings.IPAddress}}')
63- docker run --rm --name client -v $PWD/cookies:/cookies -v /tmp/shared:/shared --dns $DC_IP --hostname client.domain.test icewind1991/samba-krb-test-client \
64- curl -c /cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/index.php/apps/user_saml/saml/login
65- CONTENT=$(docker run --rm --name client -v $PWD/cookies:/cookies -v /tmp/shared:/shared --dns $DC_IP --hostname client.domain.test icewind1991/samba-krb-test-client \
66- curl -b /cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/remote.php/webdav/smb/test.txt)
67- echo $CONTENT
68- CONTENT=$(echo $CONTENT | tr -d '[:space:]')
68+ echo "SAML login"
69+ ./client-cmd.sh ${{ env.DC_IP }} curl -c /shared/cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/index.php/apps/user_saml/saml/login
70+ echo "Check we are logged in"
71+ CONTENT=$(./client-cmd.sh ${{ env.DC_IP }} curl -b /shared/cookies/jar -s --negotiate -u testuser@DOMAIN.TEST: --delegation always http://httpd.domain.test/remote.php/webdav/smb/test.txt)
72+ CONTENT=$(echo $CONTENT | head -n 1 | tr -d '[:space:]')
6973 [[ $CONTENT == "testfile" ]]
7074
71-
7275 smb-kerberos-summary :
7376 runs-on : ubuntu-latest
7477 needs : smb-kerberos-tests
0 commit comments