Я занимаюсь разработкой API с помощью symfony2 и внедрил аутентификацию WSSE. Мне нужно пропустить проверку подлинности для некоторых URL-адресов, поскольку они будут общедоступными. Общедоступные URL-адреса имеют следующий формат:
www.myserver.com/api/v1/public/testaction1
www.myserver.com/api/v1/public/testaction2
Существует еще один общедоступный URL-адрес, представляющий собой документацию по API:
www.myserver.com/api/doc/
За исключением вышеупомянутых URL-адресов, все остальные действия должны соответствовать схеме аутентификации,
Я попытался настроить шаблон URL под параметром конфигурации брандмауэра как:
security.yml
firewalls:
wsse_secured:
pattern: ^/api/[^doc | ^v1\/public/].*
что, кажется, не работает, не могли бы вы помочь мне пропустить эти URL из аутентификации? Я пропустил правильное регулярное выражение?
РЕДАКТИРОВАТЬ
Вот раздел контроля доступа моего security.yml
access_control:
- {path: ^/api/doc, roles: IS_AUTHENTICATED_ANONYMOUSLY}
Вам нужно будет добавить определенный брандмауэр для анонимного доступа:
firewalls:
api:
pattern: ^/api
doc:
pattern: ^/api/doc
security: false
public:
pattern: ^/api/public
security: false
Другой вариант — разрешить анонимным пользователям доступ к этим 2 межсетевым экранам, однако я не знаю, будет ли он работать с удаленными вызовами curl, например, для.
Других решений пока нет …