我有兩個防火牆,一個用於我的API調用(WSSE安全),一個用於我的應用程序。兩者都能正常工作,但我需要在api防火牆上驗證用戶身份,同時在應用程序防火牆上進行身份驗證,但我無法做到這一點。Symfony2如何使用兩種不同的方法在兩個不同的防火牆上驗證用戶?
我security.yml
firewalls:
# Firewall for the api
wsse_secured:
pattern: ^/api/.*
wsse:
nonce_dir: null
lifetime: 300
provider: fos_userbundle
context: user
# Firewall for the application
main:
pattern: /.*
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
check_path: fos_user_security_check
default_target_path: espace_perso
always_use_default_target_path: false
failure_path: fos_user_security_login
logout:
path: fos_user_security_logout
target: fos_user_security_login
oauth:
resource_owners:
facebook: "/login/check-facebook"
linkedin: "/login/check-linkedin"
google: "/login/check-google"
login_path: fos_user_security_login
oauth_user_provider:
service: bg.oauth.user_provider
anonymous: true
context: user
我已經看過其他職位(this question,this one和this one),正如你所看到的,添加上下文並不在我的情況下工作。
我嘗試手動添加我需要的wsse頭文件,或者爲我的用戶創建一個新的WsseToken,但沒有成功。
我真的需要幫助的這個問題必須是普通...
Wsse通過cookie通過HTTP頭和form_login進行管理。你如何試圖訪問你的API? – rolebi 2014-09-10 14:05:17
我像你說的那樣通過HTTP頭訪問我的API。例如,我在我的「主」防火牆後面有一個表單,但此表單的行爲在我的「wsse_secured」防火牆後面。所以當我點擊「驗證」時,「wsse_secured」防火牆給我一個403,因爲我沒有在這個防火牆上進行身份驗證。 – 2014-09-10 14:18:29