php-solid-server icon indicating copy to clipboard operation
php-solid-server copied to clipboard

Update dependencies on pdsinterop modules

Open michielbdejong opened this issue 3 years ago • 10 comments

michielbdejong avatar Sep 26 '22 08:09 michielbdejong

Hm, PATCH tests still fail https://github.com/pdsinterop/php-solid-server/actions/runs/3126255113/jobs/5071537614#step:3:2307 Apparently it's not using the latest version of php-solid-crud then? Investigating.

michielbdejong avatar Sep 26 '22 08:09 michielbdejong

Actually that composer update commit just updated composer.log for the main branch ^

Now did it properly on this branch and found:

root@mesh:~/michiel-dev/php-solid-server# docker run -it -v /hevel:/hevel standalone-solid-server /bin/bash
root@fa35d7a046aa:/app# composer update
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires pdsinterop/flysystem-rdf ^0.5 -> satisfiable by pdsinterop/flysystem-rdf[v0.5.0].
    - pdsinterop/flysystem-rdf v0.5.0 requires php ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
  Problem 2
    - Root composer.json requires pdsinterop/solid-auth ^0.7 -> satisfiable by pdsinterop/solid-auth[v0.7.0].
    - pdsinterop/solid-auth v0.7.0 requires php ^8.0 -> your php version (7.3.33) does not satisfy that requirement.
  Problem 3
    - Root composer.json requires pdsinterop/solid-crud ^0.6 -> satisfiable by pdsinterop/solid-crud[v0.6.0].
    - pdsinterop/solid-crud v0.6.0 requires php ^8.0 -> your php version (7.3.33) does not satisfy that requirement.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

michielbdejong avatar Sep 26 '22 09:09 michielbdejong

Updating to PHP 8

michielbdejong avatar Sep 26 '22 09:09 michielbdejong

root@ec4de407b53e:/app# curl -k https://server/.well-known/openid-configuration
<br />
<b>Warning</b>:  Undefined array key "client_id" in <b>/app/src/Controller/ServerController.php</b> on line <b>62</b><br />
<br />
<b>Fatal error</b>:  Uncaught Laminas\HttpHandlerRunner\Exception\EmitterException: Unable to emit response; headers already sent in /app/vendor/laminas/laminas-httphandlerrunner/src/Exception/EmitterException.php:19
Stack trace:
#0 /app/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitterTrait.php(36): Laminas\HttpHandlerRunner\Exception\EmitterException::forHeadersSent()
#1 /app/vendor/laminas/laminas-httphandlerrunner/src/Emitter/SapiEmitter.php(27): Laminas\HttpHandlerRunner\Emitter\SapiEmitter-&gt;assertNoPreviousOutput()
#2 /app/web/index.php(253): Laminas\HttpHandlerRunner\Emitter\SapiEmitter-&gt;emit(Object(Laminas\Diactoros\Response))
#3 {main}
  thrown in <b>/app/vendor/laminas/laminas-httphandlerrunner/src/Exception/EmitterException.php</b> on line <b>19</b><br />

michielbdejong avatar Sep 26 '22 09:09 michielbdejong

Running outside Docker for faster development:

  • php -S localhost:8080 web/index.php
  • curl http://localhost:8080/.well-known/openid-configuration

michielbdejong avatar Sep 26 '22 09:09 michielbdejong

Seeing two errors on my laptop host (PHP v8.1.4) that I'm not seeing in Docker, ignoring them for now:

  • Deprecated: Return type of Pdsinterop\Solid\Auth\Exception\Exception::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /Volumes/Michiel Docker/gh/pdsinterop/php-solid-server/vendor/pdsinterop/solid-auth/src/Exceptions.inc.php on line 7
  • Deprecated: Optional parameter $container declared before required parameter $class is implicitly treated as a required parameter in /Volumes/Michiel Docker/gh/pdsinterop/php-solid-server/vendor/league/route/src/Route.php on line 116

michielbdejong avatar Sep 26 '22 09:09 michielbdejong

curl -k https://server/profile/card
<h1>Oh-no! The developers messed up!</h1><p>Class "EasyRdf_Graph" not found (Error)</p>

michielbdejong avatar Sep 26 '22 09:09 michielbdejong

172.26.0.5 - - [26/Sep/2022:09:58:39 +0000] "GET /authorize?response_type=id_token%20code&redirect_uri=https%3A%2F%2Ftester&scope=openid%20profile%20offline_access&client_id=f5d1278e8109edd94e1e4197e04873b9&code_challenge_method=S256&code_challenge=eLYLOio8lBX9Fu3SmEW3twnhvfF2dDvIyGEODpfLahg&state=global HTTP/1.1" 500 1253 "-" "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)

curl --cookie "PHPSESSID=ef19ba32fd288e8fe60aecb1940fbcd0; path=/" -ik "https://server/authorize?response_type=id_token%20code&redirect_uri=https%3A%2F%2Ftester&scope=openid%20profile%20offline_access&client_id=f5d1278e8109edd94e1e4197e04873b9&code_challenge_method=S256&code_challenge=eLYLOio8lBX9Fu3SmEW3twnhvfF2dDvIyGEODpfLahg&state=global"

  • "Oh-no! The developers messed up! Cannot instantiate interface Lcobucci\JWT\Parser"

michielbdejong avatar Sep 26 '22 10:09 michielbdejong

That was fixed, now it's failing to correctly sign the token apparently (or maybe the public keys aren't listed correctly in the openid-configuration?) debugging with:

docker ps # got server, pubsub and thirdparty running
export COOKIE="`docker run --rm --cap-add=SYS_ADMIN --network=testnet -e SERVER_TYPE=php-solid-server --env-file ./env-vars-for-test-image.list cookie`"
docker run -it --rm --network=testnet --env COOKIE="$COOKIE" --env-file ./env-vars-for-test-image.list webid-provider-tests /bin/bash
root@492d9062c7b9:/app# vim test/surface/token.test.ts 
root@492d9062c7b9:/app# DEBUG=* ./node_modules/.bin/jest ./test/surface/token.test.ts 

michielbdejong avatar Sep 26 '22 12:09 michielbdejong

no 7dd0db8842135f3e4736d9640f862bec invalid nbf value

michielbdejong avatar Sep 26 '22 12:09 michielbdejong

Continued in #67

michielbdejong avatar Sep 01 '23 10:09 michielbdejong