歷史: 原標題:PROD環境中工作,開發失敗
訪問被拒絕......用戶沒有充分驗證;登錄 IS_AUTHENTICATED_ANONYMOUSLY
功能齊全的2.8.8站點在新鮮的3.1.2安裝中重建。一旦安裝了Symfony,composer.json
被修改爲包含來自2.8站點的依賴關係。安裝成功。開發環境的行爲如下所述。爲了獲得額外的處理問題,審查了產品環境。它揭示了一些在2.8 phpunit測試中沒有顯示的棄用。一旦這些被清除,3.1 prod環境表現爲2.8 prod環境。結論是,導致問題的2.8和3.1開發環境存在一些差異。當然,我可能在沿途的某個地方向自己開槍。
原題:
在新安裝的3.1瓦特/ FOSUserBundle,/login
,/
路線導致與開發日誌條目的循環:
編輯:整個網站要被保護。 access_control指令{ path: ^/, role: ROLE_USER }
不是錯誤。該網站在Symfony 2.8.8中運行得很好。
編輯#2:事實證明prod環境行爲正常。開發沒有。 config_dev.yml
和routing_dev.yml
是3.1的默認ymls。
request.INFO: Matched route "{route}". {"route":"fos_user_security_login" ...
security.INFO: Populated the TokenStorage with an anonymous Token....
security.DEBUG: Access denied, the user is not fully authenticated; redirecting to authentication entry point
security.DEBUG: Calling Authentication entry point....
鉻說:
重定向你太多次
需要防火牆的變化?
security.yml(基本,從docs:與修改)
security:
encoders:
FOS\UserBundle\Model\UserInterface:
algorithm: md5
ignore_case: true
encode_as_base64: false
iterations: 1
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
您是否通過/註冊url註冊了用戶? –
當我以匿名用戶的身份訪問網站時,我得到了上述信息,因此從未註冊。期望的是,作爲匿名用戶,我將被要求登錄。這是在Symfony 2.8.8中構建的應用程序分支中發生的情況。 – geoB
我應該加上:使用完全相同的'security.yml'。 – geoB