it-swarm.it

favicon.ico non trovato errore?

Ho un'applicazione che utilizza Spring Security 3 su Tomcat. Non ho definito alcuna favicon per il mio sito Web, tuttavia quando eseguo la mia applicazione dal mio IDE sometimes dopo aver effettuato il login dalle mie pagine di accesso, reindirizza la mia pagina a:

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 comunque non ho definito un favicon.ico che Spring Security 3 lo vuole da default (se sì, perché succede qualche volta?)

13
kamaci

Ecco la spiegazione:

Il problema è che quando la cache del browser è vuota e arriva un utente, ecco cosa succede:

  • l'utente richiede l'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 pubblica il modulo di accesso e viene reindirizzato a "/favicon.ico".

Per risolvere questo problema, devi impostare "/favicon.ico" come risorse non protette:

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

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

19
kamaci

Per Grails 3.0.11 e 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']]
]
0
Samuel Ivan