我有問題,在最近的Symfony2簡單的授權,Symfony2的 - 安全問題與登錄檢查
我security.yml:
安全: 編碼器: 的Symfony \分量\安全\核心\用戶\用戶:明文
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
# pattern: ^/demo/secured/login$
pattern: /login
security: false
secured_area:
pattern: ^/admin
form_login:
check_path: check
login_path: login
logout:
path: /logout
target: /index
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
- { path: ^/admin/, roles: ROLE_ADMIN }
和部分DefaultControler.php
的public function loginAction() {
$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);
}
return $this->render('JimmyTestBundle:Default:login.html.twig', array(
// last username entered by the user
'last_username' => $session->get(SecurityContext::LAST_USERNAME),
'error' => $error,
));
}
public function checkAction()
{
}
我從symfony網站上下了一本書,checkAction應該是由防火牆層解釋的,但是當我嘗試登錄時,可能不會像這樣。
控制器必須返回一個響應(null給出)。你忘了在控制器的某個地方添加一個return語句嗎? 500內部服務器錯誤 - LogicException
我login.html.twig也幾乎複製和教程粘貼。有什麼建議?
它可能期望您的控制器中checkAction函數的返回對象。如果你現在沒有使用它,你試過刪除嗎? – gavgavgavg