2014-02-23 71 views
1

我一直在爲當前正在構建的應用程序進行登錄頁面。它的運行檢查正常,但當用戶重定向到/ secure_area時,我看到當前錯誤。拒絕訪問Symfony 2

Access Denied 403 Forbidden - AccessDeniedHttpException 1 linked Exception: 

AccessDeniedException » 

到目前爲止我的代碼

security.yml

security: 
    encoders: 
     Symfony\Component\Security\Core\User\User: plaintext 
     Simple\ProfileBundle\Entity\User: 
      algorithm:  sha1 
      encode_as_base64: false 
      iterations:  1 

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

    providers: 
     main: 
      entity: 
       class: Simple\ProfileBundle\Entity\User 
       property: username 

    firewalls: 

     secured_area: 
      pattern: ^/ 
      anonymous: ~ 
      form_login: 
       login_path: login 
       check_path: login_check 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 


    access_control: 
      - { path: ^/secure_area, roles: ROLE_ADMIN } 

* routing_dev.yml *

index: 
    pattern: /
    defaults: { _controller: SimpleProfileBundle:Security:login } 


login: 
    pattern: /login 
    defaults: { _controller: SimpleProfileBundle:Security:login } 


login_check: 
    pattern: /login_check 

test_security: 
    pattern: /secure_area 
    defaults: {_controller: SimpleProfileBundle:Security:dumpString } 

任何想法,即時通訊新框架,所以開始瞭解基礎知識。

謝謝

回答

7

訪問被拒絕表示登錄的用戶沒有權限訪問資源。我推測你的用戶沒有ROLE_ADMINROLE_USER的作用。如果您的用戶已成功登錄,則沒有其他辦法。

從另一面,爲什麼不使用FOSUserBundle?初學者更好地理解整個過程如何工作(只讀代碼和他Security component documentation)。安全組件是最難理解的,因爲一些「事情」發生在幕後,所以您需要充分理解組件如何工作以確保您不會犯任何愚蠢的錯誤。

真的,仔細閱讀仔細鏈接的文檔將是一個完美的開始,現在就忽略教程。

+0

謝謝你將研究它,我不知道爲什麼Symfony爲學習框架的人做體面的教程。 – Brent

+0

@BrentFrench你應該總是通過閱讀文檔開始學習任何框架。 Tutotrials很酷,但只有當你知道這個框架是如何工作的。 Symfony不易學,我記得當我開始學習安全組件時 - 是的,這真的很難。那麼我會稱自己是經驗豐富的開發人員。我的兩分錢:-) –