2015-04-24 3 views
0


Я попытался решить эту проблему самостоятельно, но через три дня, я сдаюсь и попросить о помощи ..

я получаю «Плохие полномочия.» erros (подробности: pastebin)

Вот мой security.yml:
UserBundle Symfony 2

security: 
    encoders: 
     Common\UserBundle\Entity\User: 
     algorithm: bcrypt 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     request_users: 
     entity: 
      class: CommonUserBundle:User 
      property: username 

     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 

     request_security: 
      pattern: ^/ 
      anonymous: ~ 
      form_login: 
       check_path: _check_path 
       login_path: login_page 
       default_target_path: gemmi_start_homepage 
      logout: 
       path: _logout 
       target: signup_page 

    access_control: 
     #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } 

И мой LoginController:

<?php 

namespace Common\UserBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Response; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\Security\Core\SecurityContextInterface; 
use Symfony\Component\HttpFoundation\Request; 

class LoginController extends Controller 
{ 

    public function indexAction(Request $Request) 
    { 
     $Session = $this->get('session'); 

     if($Request->attributes->has(SecurityContextInterface::AUTHENTICATION_ERROR)) { 
      $loginError = $Request->attributes->get(SecurityContextInterface::AUTHENTICATION_ERROR); 
     } else { 
      $loginError = $Session->remove(SecurityContextInterface::AUTHENTICATION_ERROR); 
     } 

     $userName = $Session->get(SecurityContextInterface::LAST_USERNAME); 

     echo $loginError; 

     return $this->render('CommonUserBundle::login.html.twig', array(
      'loginError' => $loginError, 
      'userName' => $userName 
     )); 
    } 
} 

Кроме того, мой routing.yml:

login_page: 
    path:  /login 
    defaults: { _controller: CommonUserBundle:Login:index } 

signup_page: 
    path:  /signup 
    defaults: { _controller: CommonUserBundle:Login:signup } 

_check_path: 
    path: /login-check 

_logout: 
    path: /logout 

И:

gemmi_start_homepage: 
path: /
defaults: { _controller: GemmiStartBundle:Default:index } 

И моя форма:

<form method="post" action="{{ path('_check_path') }}" name="contactform" id="contactform"> 

        <fieldset> 

         <label for="login" accesskey="E"></label> 
         <input name="_username" type="text" id="login" size="30" value="{{ userName }}" placeholder="{% trans %} nickname {% endtrans %}" /> 
         <br> <br> 
         <label for="passwd" accesskey="E"></label> 
         <input name="_password" type="password" id="passwd" size="30" value="" placeholder="{% trans %} password {% endtrans %}" /> 
         <br> <br> 
         <button type="submit" class="submit btn btn-send" id="submit" value="Submit"> 
          <i class="fa fa-user"></i> 
          {% trans %} log_in {% endtrans %} 
         </button> 

        </fieldset> 

       </form> 


Entity Пользователь: pastebin

И последний - UserFixtures: pastebin


Я знаю, что есть много, чтобы проверить но может кто-нибудь мне помочь?

ответ

1

Вы заметили, что у вас отсутствует конкретный параметр, названный firewalls: в вашем файле security.yml? Или вы случайно оставили его, когда вы вставляли свой код? Синтаксис должен быть таким:

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

+0

К сожалению, я пропускаю «брандмауэры:», вставляя его здесь. Поэтому у меня есть это в моем security.yml, поэтому нам нужно найти другую проблему. Спасибо за помощь! – Gemmi

+0

Существует высокая вероятность того, что вы действительно входите в плохие учетные данные. Я вставил один из паролей из моих проектов, и я был перенаправлен после отправки формы, как и ожидалось. – Artamiel

+0

Хммм ... Конечно, я вхожу в правильный credentiasl, я сделал это mamy Times. Думаю, это будет другая глупая, простая проблема. – Gemmi

Смежные вопросы