2013-12-08 53 views
4

我收到以下错误AuthenticationCredentialsNotFoundException:安全上下文不包含身份验证令牌

AuthenticationCredentialsNotFoundException:安全上下文 不包含身份验证令牌。一个可能的原因可能是 没有为此URL配置防火墙。

我尝试了解决方案,因为我知道这个错误发生在没有为路由配置安全防火墙时,但是我似乎无法解决错误。

这是我security.yml

security: 
    access_decision_manager: 
    # strategy can be: affirmative, unanimous or consensus 
    strategy: unanimous 
    encoders: 
    "MyName\MyBundle\Entity\User": { algorithm: sha1, encode_as_base64: false, iterations: 0 } # You'll set this to sha1 when you have everything working. 

    providers: 
    default:  
     entity: { class: MyName\MyBundle\Entity\User, property: username } # This is an ORM entity and username is just the username property of the entity. 
    role_hierarchy: 
    ROLE_MEMBER: ROLE_GUEST 
    ROLE_STAFF: ROLE_MEMBER 
    ROLE_ADMIN: ROLE_STAFF 

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

    main: 
     pattern: ^/ 
     anonymous: ~ 
     form_login: 
     login_path: /login 
     check_path: /login_check 
     success_handler: authentication_handler 
     failure_handler: authentication_handler 
     use_referer: true 
     default_target_path:/
     remember_me: 
     key:  "%secret%" 
     lifetime: 31536000 # 365 days in seconds 
     path: /
     domain: ~ # Defaults to the current domain from $_SERVER 
     always_remember_me: true 
     logout: 
     path: /logout 
     target:/

    access_control: 
    - { path: ^/admin, roles: ROLE_STAFF } 
    - { path: ^/admin2, roles: ROLE_STAFF } 
    - { path: ^/members, roles: ROLE_MEMBER } 
    - { path: ^/shop/ipn/paypal, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/shop/step, roles: IS_AUTHENTICATED_FULLY } 
    - { path: ^/shop/confirm, roles: IS_AUTHENTICATED_FULLY } 
    - { path: ^/application, roles: IS_AUTHENTICATED_FULLY } 
    - { path: ^/account, roles: IS_AUTHENTICATED_FULLY } 
    - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/home, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    #- { path: ^/foo, access: "hasRole('FOO') and hasRole('BAR')" } 
    #- { path: ^/forum, access: "!hasRole('ROLE_BANNED')"} 

所以香港专业教育学院添加默认路由和匿名允许的,但错误仍然存​​在

+0

它的一个错字? ' - {path:/ ^,role:IS_AUTHENTICATED_ANONYMOUSLY}'你在什么地方得到异常? –

+0

HTTP://localhost/app_dev.php/homeewfwefwe我试图使它所以它显示了一个404页面侧边栏上不存在的网页,但是侧边栏包含is_granted(“IS_AUTHENTICATED_REMEMBERED”)引用来检查用户是否登录 –

+0

是因为你有2个default_target_path? –

回答

2

尝试是这样的:

secure: 
    pattern: ^/(admin|admin2|members|shop|application|account) 
    anonymous: true 
    form_login: 
    login_path: /login 
    check_path: /login_check 
    success_handler: authentication_handler 
    failure_handler: authentication_handler 
    use_referer: true 
    default_target_path:/
    remember_me: 
    key:  "%secret%" 
    lifetime: 31536000 # 365 days in seconds 
    path: /
    domain: ~ # Defaults to the current domain from $_SERVER 
    always_remember_me: true 
    logout: 
    path: /logout 
    target:/

main: 
    pattern: ^/ 
    anonymous: true