2016-07-05 2 views
2

역사 : 원제 :생산성이, 개발이 실패

액세스가 거부 ... 사용자가 완전히 인증되지 않은; IS_AUTHENTICATED_ANONYMOUSLY

에게 완벽한 기능 2.8.8 사이트에 로그인하는 신선한 3.1.2 설치에 재건되었다. Symfony가 설치되면 composer.json이 2.8 사이트의 종속성을 포함하도록 수정되었습니다. 설치가 성공적으로 완료되었습니다. Dev 환경은 아래 설명 된대로 동작합니다. 문제에 대한 추가 처리를 위해 노력한 환경을 검토했습니다. 2.8 phpunit 테스트에서 밝혀지지 않은 일부 비추천이 드러났습니다. 이들이 제거되면 3.1 환경은 2.8 환경으로 작동합니다. 결론은 문제를 일으키는 2.8과 3.1 dev 환경 사이에 약간의 차이가 있다는 것입니다. 물론, 나는 길을 따라 어딘가에 발에 자신을 쐈을 수도 있습니다.

원래 질문 : FOSUserBundle, /login/w 신선한 3.1 설치에서

/ 노선 dev에 로그 항목과 루프 결과 :

편집 : 전체 사이트 확보 할 것입니다. access_control 지시문 { path: ^/, role: ROLE_USER }은 실수가 아닙니다. 이 사이트는 Symfony 2.8.8에서 잘 작동합니다.

편집 # 2 : 환경이 제대로 작동하는 것으로 나타났습니다. 데브는 그렇지 않습니다. config_dev.ymlrouting_dev.yml은 3.1의 기본 yml입니다.

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.... 

크롬은 말한다 :

당신에게 너무 많은 시간

방화벽 변화가 필요

를 리디렉션? ( docs에서 기본, :, 수정과)

security.yml 당신이 당신의 login_check 경로를 확보 보인다

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 } 
+0

/register url을 통해 아직 사용자를 등록 했습니까? –

+0

익명 사용자로 사이트에 접속하려고 시도 할 때 위와 같이 표시되므로 절대 등록되지 않습니다. 기대는 익명 사용자가 로그인해야한다는 것입니다. 이것은 Symfony 2.8.8에 내장 된 애플리케이션 브랜치에서 발생합니다. – geoB

+0

나는 :와 똑같은'security.yml'을 추가해야합니다. – geoB

답변

1

오히려 대답보다,이를 게시 할 수 있습니다. 문제를 재현하기 위해 작업 2.8 응용 프로그램을 3.1로 마이그레이션하기위한 두 번째 노력을 시작했습니다. 이번에 나는 성공적이었다. 위에 제시된 어려움의 원인을 파악할 수는 없습니다.

철수 질문을 고려하십시오.

1

- 사용자가 요청이 잡힌 그가로 리디렉션, 로그인 양식을 제출 따라서 때 다른 로그인 양식. 이 규칙을 추가

봅니다 : 문제가 해결되지 않는 것을 보여주는 위의 논의를 유지하기 위해

access_control: 
    # ... 
    - { path: ^/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
+0

이 추가 동작의 변경 없음 – geoB

관련 문제