2011-09-14 24 views
13

Possiedo un'applicazione che utilizza le esecuzioni Spring Security 3 su Tomcat. Io non definisce alcun favicon per il mio sito, tuttavia quando faccio funzionare la mia applicazione dal mio IDE sometimes dopo faccio il login dalle mie pagine di login che reindirizza la mia pagina per:favicon.ico errore non trovato?

http://localhost:8080/favicon.ico 

e dice:

404 Not Found 

C'è un argomento qui: http://forum.springsource.org/showthread.php?100901-redirect-to-favicon.ico però non ha definito un favicon.ico fa primavera di sicurezza 3 lo vuole di default (se sì, perché succede a volte?)

risposta

19

Ecco la spiegazione:

Il problema è che, quando la cache del browser è vuota e un utente entra, qui è ciò che accade:

  • l'utente richiede URL "/". Questo URL è memorizzato nella cache.
  • il browser effettua una richiesta a "/favicon.ico". Questo URL diventa il nuovo URL a cui reindirizzare in base all'autenticazione.
  • l'utente invia il modulo di accesso e viene reindirizzato a "/favicon.ico".

Per risolvere questo problema, è necessario impostare "/favicon.ico" come essere un non-assicurato risorse:

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

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

+0

Mi sono imbattuto in questa domanda e risposta quando ho cercato di capirlo per la mia app Grails. Sto utilizzando una configurazione URLMappings modificata per lavorare con la mia app AngularJS/Grails, dove Grails è principalmente un backend REST. Spring Security è utilizzato per l'autenticazione ajax e ho riscontrato questo problema anche in Chrome. Per gli utenti di Grails, aggiungi una voce in UrlMappings come: "/favicon.ico"(controller:" home ", action:" ajaxSuccess ") dove ajaxSuccess contiene un reindirizzamento al luogo su cui potresti voler inviare l'utente su auth success. – th3morg

+0

C'è una buona descrizione di questo problema qui: http://www.webweaver.nu/html-tips/favicon.shtml –

0

Per Grails 3.0. 11 & Spring Security Core 3.0.2, aggiungere "IS_AUTHENTICATED_ANONYMOUSLY" in application.groovy nella sezione:

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