*/ 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:----UAIyGo2jwon3ntu+xATiAWYEgnWO0RW1apQeF1hAQazPK6vqbhA3KrMw5yFmfwiPVkTI4ooPkaCPxhEM4NoySf303Zwss/+nxBGVv1tJYvw/DuAwuRCrcER/Ef8/OwFXCxg/dIMoAqdKbO7QjWyAry+2BNUIwCuvfZvlBFxIpkKXhAxZvs/4LXYhFhmyKXw79Y29g50WYZ1CjtAOHrwnYcqM/BinULOghq186zUvHz1XQnANbaelw1EgBhGXvazv/poPzhfqepdVv4wxd/lfarPIesOkIDd/ai4oVGTPguq7RQau8O3kibiEPmucxdmJJhMNVGXS1W8DdXq490N7PTZMa5Fy5RLumj2AZgiaSYidVopR9nxjUcK6pPB+uSbPzehLN/N+wmEybDugPqvqO5Qv4wG7V/pxXvlxz3Ev16Xk3R6/AVElp/8Rj5W6lcLYYJhyLTS3o3QPPGhtkFFwnBjCQe/K2TGlCmjE1dGHWb4anTflZOWtP8Ux6n3B1HsYH4bf8E0MkrlMu8obwSWjy8tEIjt4FGWlJAFkEYAmw1Wn7a1e6SB0jImY8/3nIXbSb+BJGq03iR9Mgtyhdy9R2IiAtx17thz34hUxo/zGtRAuFBZ9/zixUk0uj5KX2t3+Efeazert8G7vPATnNkl6HqhfN9xX5sAfFL2Tn9T8d/c=----ATTACHMENT:----NzI5NzY4OTE3NDYzODk4NSA5Njc3MjU0NjQzMDM4NTcwIDk4NDA0MzI4NDMyNjI1NTk=