2016-03-23 38 views
1

Symfony 2.7'de fos user bundle yükledim.always_use_default_target_path yanlış ayarlandığında çalışmaz

Her şey iyi çalışıyor ancak yönlendirme ile ilgili bir sorunum var. Her şey beni eve yönlendiriyor: localhost/xxx/app_dev.php/. Benim güvenlik açığı nasıl olabilir? (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.) Üste | Geri Bildirim Ver Daha fazla bilgi Daha fazla sorun yaşayabilir miyim?

cevap

1

Giriş formunuzu kontrol edin, hangi girdi alanlarını içerir?

yapılandırmada size ekledi:

  target_path_parameter:   _target_path 

Bu nereye girişten sonra kullanıcıyı yönlendirmek için belirlemek için giriş formunda _target_path gizli giriş alanını kullanacak. (Sanırım bu boş bir dize veya varsayılan değerdir)//

Bu satırı kaldırın ve deneyin. Andras Laczi cevaba

0

Selamlar benim kendi esnek bir çözüm (muhtemelen daha iyi bir exist)

Adım BİR yapılmış ekledi:

firewalls: 
    main: 
     form_login: 
      ...    
      failure_path_parameter: _failure_path 

Adım İKİ: Ben çizgi izleyen security.yml eklendi dal olarak yere geçersiz kılma FOSUserBundle SecurityController ve ekleme aşağıdaki satırları: yerlerde ben

<a href="{{ path('fos_user_security_login')}}?targetPath={{ app.request.attributes.get('_route') }}">Log in</a> 

Adım ÜÇ eklendi giriş yönlendirme oluşturmak istediğiniz yeri LoginAction

$targetPath = $request->query->get('targetPath', 'app_index'); 
$failurePath = $targetPath; 

Adım DÖRT: geçersiz kılma FOSUserBundle Giriş Formu ekleyerek aşağıdaki gizli alanları:

<input type="hidden" name="_target_path" value="{{ targetPath }}" /> 
<input type="hidden" name="_failure_path" value="/login?targetPath={{ failurePath }}" /> 
İlgili konular