2016-06-02 3 views
-1

So reiste ich ausführlich Foren für eine Lösung für mein Problem, aber leider kann ich nichts finden, das wirklich mit meinen Sorgen übereinstimmen.Symfony3.0.6 (Symfony2.8 aussi) BadCredential

folgte ich den Kurs von Alexander BACCO (tuto gestion utilisateurs)

Authentifizierung "Memory-Work" funktioniert kein Problem.

Als ich in die Datenbank gehen (ohne FOSUserBundle, ich bin nicht in diesem Stadium ich im 4. bin) Ich erhalte eine Fehlermeldung „BadCredential“

Was ich nicht verstehe, ist, dass die SQL-Abfrage generiert durch Lehre funktioniert sehr gut, denn wenn ich es in SQL Developer ausführen, gibt es mir meinen Benutzer und mein Kennwort zurück. Leider habe ich in der App/log/dev.log eine Zeile Exception die ich unten setze damit du selbst sehen kannst, dass alles richtig aussieht (naja natürlich ist es nicht aber es scheint) und dass diese Ausnahme seltsam ist (unverständlich für mich) .

[2016-06-02 08:21:16] request.INFO: Matched route "login_check". {"route_parameters":{"_route":"login_check"},"request_uri":"http://localhost/Symfony/web/app_dev.php/login_check"} [] 
[2016-06-02 08:21:16] doctrine.DEBUG: SELECT a.* FROM (SELECT t0.id AS ID_1, t0.LOGIN AS LOGIN_2, t0.PASSWORD AS PASSWORD_3 FROM GTL_USERS t0 WHERE t0.LOGIN = ?) a WHERE ROWNUM <= 1 ["benoit"] [] 
[2016-06-02 08:21:17] security.INFO: Authentication request failed. {"exception":"[object] (Symfony\\Component\\Security\\Core\\Exception\\BadCredentialsException(code: 0): Bad credentials. at C:\\wamp\\www\\Symfony\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Security\\Core\\Authentication\\Provider\\UserAuthenticationProvider.php:73, Symfony\\Component\\Security\\Core\\Exception\\UsernameNotFoundException(code: 0): User \"benoit\" not found. at C:\\wamp\\www\\Symfony\\vendor\\symfony\\symfony\\src\\Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider.php:61)"} [] 
[2016-06-02 08:21:17] security.DEBUG: Authentication failure, redirect triggered. {"failure_path":"login"} [] 

Ich weiß nicht, was sonst noch zu sagen, dass Sie die Kugeln alle zu bringen, um mir helfen, aber auf jeden Fall, dass ich mein Bestes tat, ich hoffe, die Gemeinde kann mir helfen.

herzlich

LS

Datei: User.php

<?php 

namespace BO\UserBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Symfony\Component\Security\Core\User\UserInterface; 


/** 
* @ORM\Table(name="GTL_USERS") 
* @ORM\Entity(repositoryClass="BO\UserBundle\Entity\UserRepository") 
*/ 
class User implements UserInterface, \Serializable 
{ 
    /** 
    * @ORM\Column(type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @ORM\Column(name="LOGIN", type="string", length=50, unique=true) 
    */ 
    private $username; 

    /** 
    * @ORM\Column(name="PASSWORD", type="string", length=50) 
    */ 
    private $password; 


    public function __construct() 
    { 

    } 

    public function getUsername() 
    { 
     return $this->username; 
    } 

    public function getSalt() 
    { 
     // you *may* need a real salt depending on your encoder 
     // see section on salt below 
     return null; 
    } 

    public function getPassword() 
    { 
     return $this->password; 
    } 

    public function getRoles() 
    { 
     return array('ROLE_USER'); 
    } 

    public function eraseCredentials() 
    { 
    } 

    /** @see \Serializable::serialize() */ 
    public function serialize() 
    { 
     return serialize(array(
      $this->id, 
      $this->username, 
      $this->password, 
      // see section on salt below 
      // $this->salt, 
     )); 
    } 

    /** @see \Serializable::unserialize() */ 
    public function unserialize($serialized) 
    { 
     list (
      $this->id, 
      $this->username, 
      $this->password, 
      // see section on salt below 
      // $this->salt 
     ) = unserialize($serialized); 
    } 

    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set username 
    * 
    * @param string $username 
    * 
    * @return User 
    */ 
    public function setUsername($username) 
    { 
     $this->username = $username; 

     return $this; 
    } 

    /** 
    * Set password 
    * 
    * @param string $password 
    * 
    * @return User 
    */ 
    public function setPassword($password) 
    { 
     $this->password = $password; 

     return $this; 
    } 
} 

Datei: security.yml

security: 
    encoders:   
     BO\UserBundle\Entity\User: plaintext 

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

    providers: 
     main: 
      entity: 
       class: BO\UserBundle\Entity\User 
       property: username 

    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
     main_login:   
      pattern: ^/login$ 
      anonymous: true  

     main: 
      pattern: ^/ 
      anonymous: false 
      pattern:  ^/ 
      anonymous: true 
      provider:  main 
      form_login: 
       login_path: login 
       check_path: login_check 
      logout: 
       path:  logout 
       target: /

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

und die Konfiguration der Oracle DB zu beenden: Parameter.

parameters: 
    database_driver: oci8 
    database_host: srvoracle 
    database_port: 1521 
    database_name: v11akanea.DOM 
    database_user: trt 
    database_service: true 
    database_password: ****** 
+2

Willkommen bei StackOverflow.com Bitte stellen Sie Ihre Frage in Englisch, damit die Benutzer von StackOverflow Ihre Frage verstehen und beantworten können. – KhorneHoly

+0

Wenn ich meinen Beitrag bearbeiten kann, werde ich auf Englisch schreiben: D –

Antwort

0

Je viens rajouter après une journée de Test que si je passe en pdo_mysql et une BDD identiquement fabriquée cela fonctionne à merveille

Avez-vous une idée?

+0

Haben Sie Ihre Frage gelöst? Ist das ein Problem mit oci8? –

+0

Nein, das ist nicht gelöst. Ich benutze MySQL in der Zwischenzeit, aber ich würde eine Lösung für mein Problem mit der Oracle-Datenbank finden. –

0

Der Fehler sieht so aus, als ob FOSUserBundle nicht authentifiziert. Ich vermute, dass Sie Ihren Benutzernamen "registrieren" müssen, um den von Ihnen angegebenen Fehler zu beheben.

Aber in Ihrer Datei "security.yml" haben Sie nicht "/ register" hinzugefügt.

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/, role: ROLE_ADMIN } 

Sobald Sie das Authentifizierungsproblem überwunden haben, lassen Sie es uns wissen.

+0

Ich werde morgen versuchen: D –

Verwandte Themen