2012-03-08 4 views
0

symfony 2.0 응용 프로그램에 문제가 있습니다. Google을 통해 올바른 솔루션을 찾을 수 없기 때문에 여기에 있습니다 :)symfony-2.0 잘못된 로그인 리디렉션 URL

로그인 양식을 만들려고했습니다. 이 내 security.yml 파일입니다

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 } 

내 컨트롤러의 코드 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 

로그인 양식이 올바르게 표시됩니다 심포니의 코드처럼 보이는, 양식을 제출하면 애플리케이션이 로그인 양식으로 리디렉션되고 URL이

으로 변경되었습니다.

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

나는 아무 것도 얻지 못했습니다. 왜 나는 오류가없고 왜 URL이 변경되었는지 이해할 수 없습니다.

답변

2

나는 <form> 태그로 조치를 취하는 것을 잊었으며 로그인이 성공하면 리디렉션 할 위치를 알려줘야한다고 생각합니다.

또 다른 점은 routing.yml과 security.yml에/login/login을주었습니다.

세 번째 사람은 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에서/관리자/로그인에

변경/로그인.