*/ 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:----ht9poF1y3hxjm7hy8n5djeGV0jRTY4QNm8jWbSWFuGSmqWqdvXN+48IzJTL9g+Bi9iql7JCZ1OJsyLILNEVjdYh+X4oJbL099+vUPx0tJSiSdnBYR8qcIFqSNclhH6acMGkLwZfwp/7eJehn1+Z9N09gLucQn3Rcv0h7TLU2RbyoXbVZm3x5nK6Wp/KaHUTx7qA93GQf6HOoaJ8LTLxE9+2V2CIncXAH/SZWAsDqosAJbYZaExxSM0lk8twgvBojv4N8MezPw/fUIL/9EG8/XqH9megVWySPw0Yn683rcYUSA02cRK5aqqc6P+auNYHmRavFI7BHDQ2T4BSHtUXvHMqu2FhFldHYaw0DMWACXUxxmghAl8fb4s1phZ7Cb1B/RG5PqYjku8LBdSpcC/0LE+4Uqp86cVXiSng3HFBuzTuZNKm7AaN3VruXietDSe46Odx5ck3qWkMDQq10MzCgD1wtZqq/AZs0eY7LXOKNaZKpSVctT0OUe94zw/Oj/EWD/MwBKxp4hwkWdN2+HidV8/0FvCgtR6d9SjYE2b17/y8AQs2DCdLOlDBibxwY1B/eJ00iIxdYbNE+c1ju7oeTBzVfQ831AVJEiF/vSoh4QAGYLtrElejQQmyB6mXdnakhp4ZQvFWwY1PGA4xgXwPdr9TGc8oMVWh3KiZETDGGEqk=----ATTACHMENT:----NDEyODA1Mzg1NzI4MTA3OCA5OTM4NzI3MjQwMDcyNDc2IDU1OTI5NDM3MDMzOTU5ODA=