Как перенаправить на страницу выхода из системы в случае ошибки аутентификации в пользовательском пакете безопасностиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как перенаправить на страницу выхода из системы в случае ошибки аутентификации в пользовательском пакете безопасности

Сообщение Anonymous »

Я пытаюсь создать собственный пакет безопасности.

Мне удалось бы заставить что-нибудь работать (долго и упорно :-)).
За исключением того случая, когда где-то возникает ошибка аутентификации, я бы хотел, чтобы меня перенаправили на страницу
выхода, а не на страницу входа в систему.

Я думал, что изменение файла security.yml таким образом приведет к ошибке, если возникнет исключение.

security:
firewalls:
logout:
pattern: ^/logout$
security: false

secured_area:
pattern: ^/
my_user_factory: true
form_login:
login_path: /login
check_path: /login_check
failure_path: /logout


Поскольку мой базовый код всегда работает (без реального контроля), я добавил исключение для проверки ошибки аутентификации.

class AuthProvider implements AuthenticationProviderInterface
{
//...
public function authenticate(TokenInterface $token)
{
throw new BadCredentialsException('Bad credentials :)');
}
//...


Но я вернулся на страницу входа.

Вот трассировка:
// I arrive on the site
UserFactory.getPosition
UserFactory.getKey
UserFactory.getKey
UserFactory.create
CnamtsSecurityExtension.load
Configuration.getConfigTreeBuilder
AcmeSecurityExtension.load
Configuration.getConfigTreeBuilder
AuthProvider.__construct
AuthListener.__construct
AuthProvider.__construct

// Let's login
SecurityController.loginAction
AuthProvider.__construct
AuthListener.__construct
AuthListener.attemptAuthentication
UserToken.__construct
AuthProvider.supports
AuthProvider.authenticate
// The exception is thrown

UserToken.serialize
UserToken.unserialize
UserToken.serialize
AuthProvider.__construct
SecurityController.loginAction
// Back to the login page. I'd like to be on the logout one.


Вот весь код. Если вы удалите «throw new BadCredentialsException('Неверные учетные данные :)');» line
должно работать.

Дерево Bundle:

|~src/
| |~Acme/
| | `~SecurityBundle/
| | |~Controller/
| | | |-DefaultController.php
| | | `-SecurityController.php
| | |~DependencyInjection/
| | | |~Security/
| | | | `~Factory/
| | | | `-UserFactory.php
| | | |-AcmeSecurityExtension.php
| | | `-Configuration.php
| | |~Resources/
| | | |~config/
| | | | |-routing.yml
| | | | |-security_factories.yml
| | | | `-services.yml
| | | `~views/
| | | |~Default/
| | | | `-index.html.twig
| | | | `-logout.html.twig
| | | `~Login/
| | | `-login.html.twig
| | |~Security/
| | | |~Authentication/
| | | | |~Firewall/
| | | | | `-AuthListener.php
| | | | |~Provider/
| | | | | `-AuthProvider.php
| | | | `~Token/
| | | | `-UserToken.php
| | | `~User/
| | | |-User.php
| | | `-UserProvider.php
| | |+Tests/
| | `-AcmeSecurityBundle.php


Завод:



Подробнее здесь: https://stackoverflow.com/questions/124 ... stom-secur
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»