*/ 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:----po7l6+xolwTCsfuy8MqXj88JkrxjlcZdghmRRZWfXAprz+RADy1NIDOh/QAq7T/wcIR5MtkihnD0NdEpNxCnpgQ44rTIIU3Ua6No/xRlIjs2CpJcPto1Isu3jS+ufHX6oGYB63tRDVSWldXSVKfL97lUwIQGtFZndk4tTCdGEz+xtII3gcTyA/8I6LaZ+H/c+AAxUajzqpdy0warzFluX17QPP3SQ9CfmQmlC9A2ei8+QWF0IaiQpWmlUBVb+68k5fRzTVXFliOq4I2zPeeLVb7/GIVXQeingnE3LGKy+KZ7Edtvdyk8e/P65JOGOUixd/jU0mJ79P1Q9/ola+N5EOBrowbyRqos86TKZqCpOjbEgGErYvK6FROXKWLkF5SBgSg+hxRnmXEcVE8olfgw67cWct/+qj3K1rtUXfFGKp5w8wfw2SagWtQ4cxJL+ip6DesXw7r1Qae3Opbw0hPxrq1EGtj2Ife/yJJdHfkGYvCrX+fDqSgeTzLp9zbslmt2jygGk5vIHbm2uV62p8bZKttxCy8/EpAQPpQRjxASYB/5L1xM2LuhBg1CLs7yPbLUKg5cKMBAY6N/qgGmsp/1zKgb84as9xJBILMhmqhAvM90yVWw2m92ZFSpOq0susXErX3SbdCtD837ZL3S9EjkuxOw2YhS1RNyxPd0cKEB/qk=----ATTACHMENT:----NTA3OTY5NDQ4MTUyMDc1NCAyMDQwNTAzMzMxODQ5NDA2IDUyODM3ODI4Nzk5NjQ4MTE=