2
我的目標是讓除防火牆外的所有路由受保護的API除外。 我有防火牆的配置是這樣的:Symfony2 - FOSOauthServerBundle - 防火牆配置 - 路由白名單
security:
acl:
connection: default
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
encoders:
FOS\UserBundle\Model\UserInterface: sha512
firewalls:
oauth_token:
pattern: ^/oauth/v2/token
security: false
oauth_authorize:
pattern: ^/oauth/v2/auth
form_login:
provider: fos_userbundle
check_path: /oauth/v2/auth_login_check
login_path: /oauth/v2/auth_login
anonymous: true
api:
pattern: ^/.*
fos_oauth: true
stateless: true
anonymous: false
access_control:
- { path: ^/, methods: [GET], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: ^/doc, methods: [GET], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: ^/resque, methods: [GET], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: /monitor, methods: [GET], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: /users, methods: [POST], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: /users/me/registration/confirm, methods: [GET], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: /users/me/email/confirm, methods: [GET], roles: [ IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: /instants/.*, methods: [PUT], roles: [IS_AUTHENTICATED_ANONYMOUSLY ]}
- { path: ^/_profiler, roles: [IS_AUTHENTICATED_ANONYMOUSLY]}
- { path: ^/_wdt, roles: [IS_AUTHENTICATED_ANONYMOUSLY]}
- { path: ^/_configurator, roles: [IS_AUTHENTICATED_ANONYMOUSLY]}
- { path: /.*, roles: [ IS_AUTHENTICATED_FULLY ]}
但路線/resque
,/monitor
和其他人也不是沒有訪問令牌到達。 我在配置中做錯了什麼?或者不可能實現路由白名單?
@Genar沒了,但我解決我的問題與其他的OAuth grant_type的整合(client_credentials )。我在API中沒有公共路由,但客戶端可以在沒有用戶身份驗證的情況下向某個端點發出請求。 –
@AngeloGiuffredi我處於相同的情況,你是如何禁用一些端點/路線到client_credentials grant_type? – sh4