Я следил за документацией, и так организован мой код:
src/Компания /AuthBundle/Безопасность/ApiKeyAuthenticator.php src/Компания /AuthBundle/Безопасность/ApiKeyUserProvider.php
(они совпадают с образцами классов в doc)
# File: services.yml
apikey_authenticator:
class: Company\AuthBundle\Security\ApiKeyAuthenticator
public: false
# File: security.yml
firewalls:
api:
pattern: ^/api
stateless: false
simple_preauth:
authenticator: apikey_authenticator
provider: fos_userbundle
security: false
anonymous: true
И теперь, если я попытаюсь получить доступ, например, http://symfony-project.dev/api?apikey=somekey, я получил следующую ошибку:
Не найдено маршрута для "GET/api"
Любая идея, что неправильно?
Сообщение об ошибке довольно понятно: вы не определили маршрут для запроса GET
для '/api'
.
Компонент безопасности, который вы настроили, выполняет проверку подлинности и предоставления доступа, но не контролирует какую-либо логику, специфичную для вашего приложения. Вы должны создать контроллер и маршрут для таких запросов.
Вы можете просмотреть свои определенные маршруты с помощью $ php app/console debug:router
- если вы попытались определить маршрут, который поможет вам отладить его. Если нет, вы должны создать его.