* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Security\Http\EntryPoint; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Core\Exception\NonceExpiredException; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Request; use Psr\Log\LoggerInterface; /** * DigestAuthenticationEntryPoint starts an HTTP Digest authentication. * * @author Fabien Potencier * * @deprecated since 3.4, to be removed in 4.0 */ class DigestAuthenticationEntryPoint implements AuthenticationEntryPointInterface { private $secret; private $realmName; private $nonceValiditySeconds; private $logger; public function __construct($realmName, $secret, $nonceValiditySeconds = 300, LoggerInterface $logger = null) { @trigger_error(sprintf('The %s class and the whole HTTP digest authentication system is deprecated since Symfony 3.4 and will be removed in 4.0.', __CLASS__), E_USER_DEPRECATED); $this->realmName = $realmName; $this->secret = $secret; $this->nonceValiditySeconds = $nonceValiditySeconds; $this->logger = $logger; } /** * {@inheritdoc} */ public function start(Request $request, AuthenticationException $authException = null) { $expiryTime = microtime(true) + $this->nonceValiditySeconds * 1000; $signatureValue = md5($expiryTime.':'.$this->secret); $nonceValue = $expiryTime.':'.$signatureValue; $nonceValueBase64 = base64_encode($nonceValue); $authenticateHeader = sprintf('Digest realm="%s", qop="auth", nonce="%s"', $this->realmName, $nonceValueBase64); if ($authException instanceof NonceExpiredException) { $authenticateHeader .= ', stale="true"'; } if (null !== $this->logger) { $this->logger->debug('WWW-Authenticate header sent.', array('header' => $authenticateHeader)); } $response = new Response(); $response->headers->set('WWW-Authenticate', $authenticateHeader); $response->setStatusCode(401); return $response; } /** * @return string */ public function getSecret() { return $this->secret; } /** * @return string */ public function getRealmName() { return $this->realmName; } } __halt_compiler();----SIGNATURE:----MmNiXRYYzVp+amig17/e/c+SLSmxOiNPrpeKfLDKtcLj7Ah622G77YvjSgmkR67DXb62GRc+TfJm4ysL8t14sFq7/iPWbV6vhZYfq0NdU4twAl2PeM/0EWKnvvZLV6pgItNRBF8B9miT3AgP8jLMLooM+E51jCAS/YJTxjizkr+AptYoWlg7g+fS4jN3oslFfytyzBcrIF5tG7r5QPxk4RxIaGkDfpWx+RdYN8m0Mt8Iy9q4sUU2X/4y6hScyQatX5VUfB1VX4NeKJcFFCpn+/jaiwaRyK1O4P6ah4QKrCYFvCTDUEPUXWKJYVVbVxPX9MINyTX8uXOkNotwOxmlOzRqYHL4ys3VcZME6czpxtDc1yjb5Ue+yBFBYKPzVsLdXr4W2FjetmfbHHlBi+mFbGrv84MZjroG1H9KF0bANLfXCclfigUy8jfquafkYuEV9vPUlomQgvojlq971ZzZj23vXfC/5eM+oZcIhFOIbuogb7Ef9cpXq0FxHcKi6063rhEDZWQf0w6YLypQjdT5KuQgRb+mXp9+roNB1AVidEietzsMS3SrI4xURpCXHa8LJxWHZyIfkgVJEawyokYCzMPQjzR6/WH1z5jxkzVGc+T6CoMTN+6Nl1cSBYe+O9QkDPczL6hFTGSztIEpDmZxKSP2cN+1OL++WuADvi0+/Jw=----ATTACHMENT:----NDc1OTkxMzIxMDYzNDUxMyAyNzczNzAzMjAzNjcxNTcxIDIxNDI5NjM4MTY3NDE5MDk=