Я использую Symfony для проекта, и я пытался заставить логин работать на производственном сервере безуспешно в течение последних 2 дней. Я получаю ошибку
Запрос аутентификации не может быть обработан из-за системной проблемы.
Я следовал этому руководству (http://symfony.com/doc/current/cookbook/security/entity_provider.html), чтобы настроить загрузку пользователей из базы данных.
Мой файл security.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
Acceptme\UserBundle\Entity\User: plaintext
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
patricia:
password: patricia
roles: 'ROLE_ADMIN'
users:
name: user_provider
entity: { class: AcceptmeUserBundle:User, property: username }
firewalls:
user_area:
pattern: ^/
anonymous: ~
provider: user_provider
form_login:
login_path: login_route
check_path: _login_check
default_target_path: homepage
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
default:
anonymous: ~
http_basic: ~
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
Мой SecurityController.php:
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\Security\Core\SecurityContext;
class SecurityController extends Controller
{
/**
* @Route("/login", name="login_route")
* @Template("security/login.html.twig")
*/
public function loginAction(Request $request)
{
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
}
return array(
'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME),
'error' => $error,
);
}
/**
* @Route("/login_check", name="_login_check")
*/
public function securityCheckAction()
{
// this controller will not be executed,
// as the route is handled by the Security system
}
}
Я попытался загрузить проект на 2 разных веб-хостинга (FatCow и GoDaddy), и проблема остается. Локально я использую PHP 5.4.19 (FatCow использует 5.3.2 и GoDaddy использует 5.4.37). Имейте в виду, что при работе на localhost с XAMPP все работает отлично!
Я подтвердил, что PDO включен в обоих случаях. Я подтвердил, что имя пользователя базы данных, пароль и хост указаны правильно в файле parameters.yml. Журналы ошибок на локальных и удаленных серверах ничего не показывают.
Я следовал всем указаниям из этого предыдущего поста Развертывание приложения Symfony2, получая ошибки fosuserbundle и до сих пор безуспешно.
Я ценю всю помощь заранее.