*/ 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:----GOM8rzPsPptuKJN2Q5a6vEWOUF0Wel+wdJng8EQV74gTiMzwE55x8NLeAfvP/AHaCSoYvlxmC2jaujX6iNIB/dKTvwgzeghc5w6U8nRQ7cAw0O3d1kmr5R6gLdrue54HEH7QU0dbYEYHTj6rARcRE1T5tV0733f7NuuvCbaHdOANS9UgDmU8lS3ZEIllOgpkpvOPnutXOBUmaNR4kl48auLQRr+oXGZxneYKdjCtv5mzvcPaq2tO9zsqvrku2GfSCufWnISjcHpOIo+iGDzAazbiM+vhHTBeYTxpzgHCFI5YLXvqKwQpzyzgP+K14EwObrp6Rtoi2YgUWhFHdXR+gjtcHsMypMesVGpI82kFOfG5XIuEbnvgKCZ5bL/ABvFWUtlaS9lBDe3y498u2eA7JmVXdVdm/q9EV9M8Mz5VGyfYee/ZVi8xhsqABWv6jP59O0YDSjBp2kNbWht51lqQHEDLnycR1GsvLy2jcXnh9RdkUkwAL3Ie296GdPWVJpyGwlIq4dcWb9XXV028+Ssx/RIByVzurMKJaKomKnJsAhSO7vKGeWJvOZwlsJ9Azt8kl6zHWmADNrJFjFNEvY6BfTnvxcXge3I8j1EFaJY/PNwupm88JFS31rMPSvrpsR8se3v998pjtk6q6O1yV/TKChT3G+z3JCTaJuhvd8rQ6zY=----ATTACHMENT:----Nzc2MTgxMzg4MzA4NTI3NiA5OTg1NTE4MDQyODg4MTQ4IDc3NDAxMTAzMTY1MzgxOTU=