ログインページにアクセスしようとすると、Symfony2 Web サイトでログインしているユーザーを別のページにリダイレクトさせようとしています。
これは私のsecurity.ymlです:
security:
encoders:
Cocoa\LoginBundle\Entity\User:
algorithm: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
providers:
administrators:
entity: { class: CocoaLoginBundle:User, property: username }
firewalls:
admin_area:
pattern: ^/administration
form_login:
login_path: login
check_path: login_check
logout:
path: /administration/logout
invalidate_session: true
target: /
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/administration, roles: ROLE_ADMIN }
そして、これは私のコントローラーです:
class LoginController extends Controller {
public function loginAction() {
if (false === $this->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY')) {
return $this->redirect($this->generateUrl('public_homepage'));
}
$request = $this->getRequest();
$session = $request->getSession();
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
$session->remove(SecurityContext::AUTHENTICATION_ERROR);
}
return $this->render('CocoaLoginBundle:Login:login.html.twig', array(
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
'error' => $error));
}
public function loginCheckAction() {
}
}
匿名ユーザーとしてログイン ページにアクセスすると、ログイン フォームが表示されます。しかし、ログインしてログイン ページをロードすると、500 サーバー エラーが発生します。
The security context contains no authentication token. One possible reason may be that there is no firewall configured for this URL.
別のトピックで読んだ提案された修正は、ログイン ページをファイアウォールの背後に置くことです。私はそれをしましたが、それでもエラー500です。
私は何を間違っていますか?
ありがとう!