Überschreiben des Authentifizierungsfehler-Handlers - Symfony2

Ich erweitere den Authentifizierungsfehler-Handler und alles funktioniert hauptsächlich in Ordnung, aber für ein kleines Problem.

Das ist meine services.yml:

  http.utils.class:
    class: Symfony\Component\Security\Http\HttpUtils
  auth.fail:
    class: Acme\MyBundle\AuthenticationFailure
    arguments:
      - @http_kernel
      - @http.utils.class
      - []

Ich habe dies so eingestellt, dass es in security.yml verwendet wird:

failure_handler: auth.fail

Dies ist meine Acme \ MyBundle \ AuthenticationFailure.php:

namespace Acme\MyBundle;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler;
use Symfony\Component\HttpFoundation\Response;

class AuthenticationFailure extends DefaultAuthenticationFailureHandler
{

    public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
    {

        //do something

    }

}

Das Problem ist, dass die Optionen, die ich in security.yml festgelegt habe, ignoriert werden. Ich weiß, dass der dritte Parameter der _construct-Methode der Klasse das $ options-Array ist, und ich habe nichts als dritten Parameter (in services.yml) übergeben. Ich schätze, dies ist das Problem und könnte eine Lösung sein Geben Sie einfach die Werte weiter. Ich schätze, ich könnte auch so etwas tun:

arguments:
  - @http_kernel
  - @http.utils.class
  - %security.firewalls.secure_area.form_login%

.... Ich habe es nicht getestet, da das Problem darin besteht, dass es sich um eine Hardcodierung handelt, die in services.yml enthalten ist, und es ist nicht ideal, als ob ich den Namen von secure_area geändert hätte, da dies zu Problemen führen würde. Sicherlich sind diese Werte besser verfügbar?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage