2013-12-08 3 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

его опечатка? '- {путь:/^, role: IS_AUTHENTICATED_ANONYMOUSLY}' Что такое URL-адрес, где вы получаете исключение? –

+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 
Смежные вопросы