2012-03-08 11 views
0

symfony 2.0アプリケーションに問題があります。私はここにいるので、Googleを介して正しい解決策を見つけることができませんでした:)symfony-2.0間違ったログインリダイレクトurl

私はログインフォームを作成しようとしました。 これは私のsecurity.ymlファイルです:私のコントローラのコードは、ログインフォームが正しく表示される2.0ドキュメントhttp://symfony.com/doc/current/book/security.html#using-a-traditional-login-form

マイルート

DomiconAdminBundle_login: 
pattern: /login 
defaults: { _controller: DomiconAdminBundle:User:login } 

DomiconAdminBundle_login_check: 
    pattern: /login_check 

のsymfonyのコードのように見える

security: 
encoders: 
    Domicon\AdminBundle\Entity\User: 
     algorithm: sha1 
     encode_as_base64: false 
     iterations: 10 

providers: 
    admin: 
     entity: { class: DomiconAdminBundle:User, property: email } 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

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

    admin_area: 
     pattern: ^/admin.* 
     form_login: 
      check_path: /admin/login_check 
      login_path: /admin/login 
     logout: 
      path: /admin/logout 
      target: /admin 
     anonymous: ~ 
     logout: true 
     http_basic: 
      realm: "Secured Admin Area" 
     provider: admin 

access_control: 
    - { path: ^/admin/login.*, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin.*, role: ROLE_ADMIN } 

フォームを送信すると、アプリケーションはログインフォームにリダイレクトされ、URLは

に変更されています

http://localhost/Domicon/web/app_dev.php/admin/login?_username=admin&_password=pass

エラーはありません。なぜ私は何のエラーもなく、なぜURLがこれに変わったのか分かりません。

答えて

2

あなたは<form>タグでアクションを実行するのを忘れてしまったと思います。ログインが成功するとリダイレクトする場所を教えてください。

また、/ admin/loginを指定したrouting.ymlとsecurity.ymlに/ loginを指定したことに気がつきました。

3つ目はlogin_pathです:/管理/ security.ymlファイルでlogin_checkとrouting.ymlであなたが

/login_check

を与えていました。このことができます/管理/ login_checkでのrouting.yml

<form action="{{ path('DomiconAdminBundle_login_check') }}" method="post"> 
    <div> 
    <label for="username">Username:</label> 
    <input type="text" id="username" name="_username" value="{{ last_username }}" /> 
    </div> 
    <div> 
    <label for="password">Password:</label> 
    <input type="password" id="password" name="_password" /> 
</div> 
    {# 
     If you want to control the URL the user is redirected to on success #} 
     <input type="hidden" name="_target_path" value="/yourredirectpath" /> 


    <input type="submit" name="login" value="Submit" /> 
</form> 

希望にrouting.ymlの

変更/ login_check中/管理/ログインへ

変更/ログイン。

関連する問題