Kullanıcının kimlik bilgilerinin doğru olup olmadığını kontrol etmeden önce bazı kodları çalıştırmam gerekiyor. Şu anda bunu, kernel.request
olayında tetiklenen özel bir olay dinleyicisi ile gerçekleştiriyorum ve istenen URL'nin security.yml'ın check_path
ayarıyla eşleşip eşleşmediğini kontrol ediyorum. Ancak bu, her istekte çalıştığı için verimsizdir. onSecurityInteractiveLogin
etkinliğinin farkındayım, ancak başarılı bir giriş denemesinden sonra yangınların olduğuna inanıyorum. Ön giriş etkinliğinin olup olmadığını veya özel bir etkinliği kendim gönderebileceğimi bilen var mı?Herhangi bir "pre login" olayı veya benzeri bir şey var mı?
cevap
Yani, 'resmi' ön giriş olayı yok. Ama şükür ki Symfony2 çok genişletilebileceğinden birini ayarlamak zor değil. Hile, kimlik doğrulama işlemek için kendi hizmetinizi kullanmaktır. Bir giriş formunu kullanırken
Symfony'nin bu sınıfı kullanır:
Symfony\Component\Security\Http\Firewall\UsernamePasswordFormAuthenticationListener
sen (aslen Symfony\Bundle\SecurityBundle\Resources\config\security_listeners.xml
tanımlanan) security.authentication.listener.form.class
parametresini Eğer UsernamePasswordFormAuthenticationListener
uzanan özel bir dinleyici kullanabilirsiniz geçersiz kılarsanız.
Tek yapmanız gereken özel olayı göndermek için attemptAuthentication()
yöntemini geçersiz kılmaktır.
(Aslında siz de __construct()
bir sınıf özelliği olarak olay memuru saklamak gerekir)
- Uygun dinleyici değiştirmek yapmanız gereken istediğiniz tüm (yani BasicAuthenticationListener
, X509AuthenticationListener
, vb.)
- 1. Bir Subversion Checkout Hook veya benzeri bir şey var mı?
- 2. LARGEST_INTEGER makrosu veya benzeri bir şey var mı? (C)
- 3. NetworkStream, SerialPort için DataReceived benzeri bir şey var mı? (C#)
- 4. PHP'de python-DJANGO benzeri bir şey var mı?
- 5. "A" veya "Ait" ilişki veya başka bir şey var mı?
- 6. WebRTC veya WebSocket veya başka bir şey var mı?
- 7. CodeRush veya ReSharper için GhostDoc benzeri bir eklenti var mı?
- 8. Sadece ISet benzeri bir arayüz var mı?
- 9. Julia'da Python benzeri bir virtualenv var mı?
- 10. Süreçler oluşturulduğunda bir Sistem olayı var mı?
- 11. Erlang için herhangi bir RSpec benzeri araç?
- 12. Sınıf içinde özel sınıf veya benzeri bir şey
- 13. İşaretçinin herhangi bir adresi veya bellek ayırması var mı?
- 14. Go, lambda ifadeleri veya benzer bir şey var mı?
- 15. Herhangi bir standart silme functor var mı?
- 16. Javascript'te gsub'a benzer bir şey var mı?
- 17. Birçok dil için çalışan herhangi bir Maven benzeri bir araç var mı?
- 18. Bir yüce görev, herhangi bir şey geri vermek zorunda mı?
- 19. Herhangi bir python OpenID sunucusu var mı?
- 20. Scala/Java için npmjs gibi bir şey var mı
- 21. Herhangi bir getNLMultibutton kitaplığı var mı?
- 22. Herhangi bir iyi C#, .net haber toplayıcıları var mı?
- 23. ASP.NET'te Smarty gibi bir şey var mı?
- 24. Java'da WebClient.DownloadString'e benzer bir şey var mı?
- 25. Rust, Scanf gibi bir şey var mı?
- 26. Android'de NSDictionary gibi bir şey var mı?
- 27. jQuery.toggle (boolean) gibi bir şey var mı?
- 28. ImageMagick'den daha hızlı bir şey var mı?
- 29. Emacs 'Eclipse için tampon/pencere desteği benzeri bir şey var mı?
- 30. Herhangi bir IPMI simülatörü var mı?
Buradan nereden başlayacağınızı bilmediğimden bir örnek verebilir misiniz? – pregmatch
Bu öneriyi şu adımlarla uygularım: 1) bir "security.authentication.listener.form.class: App \ BoardBundle \ Listener \ MyAuthListener" satırını config.yml dosyasına ekleyin, bölümler bölüm 2) aslında bu sınıf sınıfını oluşturun MyAuthListener extends Içinde UsernamePasswordFormAuthenticationListener {3), korumalı işlev girişimi oluşturunAuthentication (İstek isteğinde bulunun) – user1312695