*/ class SimpleHttpSolver implements SolverInterface { /** @var HttpDataExtractor */ private $extractor; /** @var OutputInterface */ private $output; public function __construct(?HttpDataExtractor $extractor = null, ?OutputInterface $output = null) { $this->extractor = $extractor ?: new HttpDataExtractor(); $this->output = $output ?: new NullOutput(); } /** * {@inheritdoc} */ public function supports(AuthorizationChallenge $authorizationChallenge): bool { return 'http-01' === $authorizationChallenge->getType(); } /** * {@inheritdoc} */ public function solve(AuthorizationChallenge $authorizationChallenge) { $checkUrl = $this->extractor->getCheckUrl($authorizationChallenge); $checkContent = $this->extractor->getCheckContent($authorizationChallenge); $this->output->writeln( sprintf( <<<'EOF' Create a text file accessible on URL %s containing the following content: %s Check in your browser that the URL %s returns the authorization token above. EOF , $checkUrl, $checkContent, $checkContent ) ); } /** * {@inheritdoc} */ public function cleanup(AuthorizationChallenge $authorizationChallenge) { $checkUrl = $this->extractor->getCheckUrl($authorizationChallenge); $this->output->writeln( sprintf( <<<'EOF' You can now safely remove the challenge's file at %s EOF , $checkUrl ) ); } }__halt_compiler();----SIGNATURE:----BkVSWssX4ujBZ7qsJi8U9WRmQFSCuhscq2NAhkINlJqSOasFXcee6VEYHwrzIr2MA+vI+yUwSTEb05coMW14qzWkN0JkId6dAVQoadsLAtWUijH6RBr37NxWPLoAizZvf7xv1so+ZfRWvFMa5lE+MK9DFLMKUZRqKPQDOsHp6t/6o5et91Ul31QE7V4yE+SQDRSlctsBPlSUzxZlpAn/ifG/HQ8PQa0gRnJbzRi0LCmRw6BP5V4rY1OMev9IL9sOLzIt3UgYU2/avDh8DxBBDx2lZ3q9PFt7IzqrbhYKuBfAUE3Ja0vJkRqvRxUINOWnPpbpyMpZPr8fzFFy1XaVR7RT+E6+4T7CQhJRtmnT+PkW+r55XB5rONyqfQbRAny0pKRH2x7Duf4FYzpqA67zVTz1cLnH6Las7W/ORjd97zA47THfVQHcXIUcDkqrksHwDMI207ylggdop0HH+K+MGtLdgkR9oYceKljowjzWUiFc8Xlm8QrCkXZvws+EXCQeFgWDIrGppRqeve7hitkZhfZxRsQNCKeUkAtn7xg2YBI6fMqPv1XKzyDeUq1YlIgrI8fcYoLe+XiOGwNRSz8dAm63dDLekv+HcJ8bsc8P3t3gn7Hi/aWrlgp5oGKkkWGFJWYm2BVpVJIfB8uBGADjAi68doB7NTPcJLsR1QGVADQ=----ATTACHMENT:----MzI1MjI3NjU0NjE2ODkxMCA3NjEwNTA2MzUyNzQ3MTMxIDk0NzU0MDM0NjI0ODA2NzY=