2011-09-14 15 views
13

Mam aplikację, która używa Spring Security 3 działa na Tomcat. Nie zdefiniować dowolną favicon dla mojej strony jednak, gdy uruchomię mojej aplikacji z mojego IDE sometimes po mogę się zalogować z moich stron logowania przekierowuje moją stronę:favicon.ico nie znaleziono błędu?

http://localhost:8080/favicon.ico 

i mówi:

404 Not Found 

jest to temat tutaj: http://forum.springsource.org/showthread.php?100901-redirect-to-favicon.ico jednak nie definiują favicon.ico robi Wiosna Bezpieczeństwo 3 chce go domyślnie (jeśli tak, dlaczego to się dzieje czasami?)

Odpowiedz

19

Oto wyjaśnienie:

Problem jest, gdy pamięć podręczna przeglądarki jest pusta i użytkownik przychodzi, oto co się dzieje:

  • użytkownik zażąda URL „/”. Ten adres URL jest zapisany w pamięci podręcznej.
  • przeglądarka wysyła żądania do "/favicon.ico". Ten adres URL staje się nowym adresem URL, do którego należy przekierować po uwierzytelnieniu.
  • Użytkownik wysyła formularz logowania i jest przekierowywany do "/favicon.ico".

Aby rozwiązać ten problem, trzeba ustawić "/favicon.ico" jako non-zabezpieczone zasobów:

<intercept-url pattern="/favicon.ico" access="ROLE_ANONYMOUS" /> 

albumu: http://blog.idm.fr/2010/09/spring-security-redirecting-to-faviconico.html

+0

Natknąłem się na ten Q & A, próbując znaleźć to dla mojej aplikacji Grails. Używam zmienionej konfiguracji URLMappings do pracy z moją aplikacją AngularJS/Grails, gdzie Grails jest głównie backendem REST. Spring Security jest używany dla ajax auth i mam też ten problem w Chrome. W przypadku użytkowników Grails, dodaj wpis do UrlMappings, taki jak: "/favicon.ico" (controller: "home", action: "ajaxSuccess"), w którym ajaxSuccess zawiera przekierowanie do miejsca, do którego możesz chcieć wysłać użytkownika w przypadku auth success. – th3morg

+0

Istnieje dobry opis tego problemu tutaj: http://www.webweaver.nu/html-tips/favicon.shtml –

0

Dla Grails 3.0. 11 & Spring Security Core 3.0.2, dodaj "IS_AUTHENTICATED_ANONYMOUSLY" w application.groovy w sekcji:

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
... 
.. 
. 
[pattern: '/favicon.ico',  access: ['IS_AUTHENTICATED_ANONYMOUSLY']] 
] 
Powiązane problemy