nextcloud / integration_moodle

🎓 Moodle integration into Nextcloud
GNU Affero General Public License v3.0
15 stars 5 forks source link

[NC22] Host violates local access rules #24

Closed aleadco closed 2 years ago

aleadco commented 2 years ago

After updating to NC22 the connections to Moodle have been broken and it is returned as an error: Host violates local access rules

In the logs:

[integration_moodle] Warning: Moodle API error : OCP\Http\Client\LocalServerException: Host violates local access rules in /var/www/nextcloud/lib/private/Http/Client/LocalAddressChecker.php:42
Stack trace:
#0 /var/www/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php(121): OC\Http\Client\LocalAddressChecker->ThrowIfLocalIp()
#1 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(64): OC\Http\Client\DnsPinMiddleware->OC\Http\Client\{closure}()
#2 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\PrepareBodyMiddleware->__invoke()
#3 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\Middleware::GuzzleHttp\{closure}()
#4 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(63): GuzzleHttp\RedirectMiddleware->__invoke()
#5 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\Middleware::GuzzleHttp\{closure}()
#6 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(331): GuzzleHttp\HandlerStack->__invoke()
#7 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(168): GuzzleHttp\Client->transfer()
#8 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(187): GuzzleHttp\Client->requestAsync()
#9 /var/www/nextcloud/lib/private/Http/Client/Client.php(294): GuzzleHttp\Client->request()
#10 /var/www/nextcloud/apps/integration_moodle/lib/Service/MoodleAPIService.php(312): OC\Http\Client\Client->post()
#11 /var/www/nextcloud/apps/integration_moodle/lib/Service/MoodleAPIService.php(347): OCA\Moodle\Service\MoodleAPIService->request()
#12 /var/www/nextcloud/apps/integration_moodle/lib/Controller/MoodleAPIController.php(83): OCA\Moodle\Service\MoodleAPIService->getToken()
#13 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(217): OCA\Moodle\Controller\MoodleAPIController->getToken()
#14 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(126): OC\AppFramework\Http\Dispatcher->executeController()
#15 /var/www/nextcloud/lib/private/AppFramework/App.php(156): OC\AppFramework\Http\Dispatcher->dispatch()
#16 /var/www/nextcloud/lib/private/Route/Router.php(301): OC\AppFramework\App::main()
#17 /var/www/nextcloud/lib/base.php(1000): OC\Route\Router->match()
#18 /var/www/nextcloud/index.php(36): OC::handleRequest()
#19 {main}

POST /apps/integration_moodle/get-token
from XXX.XXX.XXX.XXX by username at 2021-08-04T02:13:59-04:00
aleadco commented 2 years ago

Solution Add the following line to the config.php file 'allow_local_remote_servers' => true,

danielepercivaldi commented 2 years ago

@aleadco , that works for me! Just a note: the right way to write the parameter is 'allow_local_remote_servers' => 'true',

Thanks.