2011-09-14 75 views
13

Tengo una aplicación que utiliza Spring Security 3 se ejecuta en Tomcat. Yo no define ningún favicon para mi sitio web, sin embargo cuando corro mi solicitud de mi IDE sometimes después de una sesión de mis páginas de inicio de sesión se vuelve a dirigir a mi página:favicon.ico error encontrado?

http://localhost:8080/favicon.ico 

y dice:

404 Not Found 

hay un tema aquí: http://forum.springsource.org/showthread.php?100901-redirect-to-favicon.ico sin embargo yo no definió un favicon.ico hace Spring Security 3 quiere por defecto (en caso afirmativo, ¿por qué sucede a veces?)

Respuesta

19

aquí está la explicación:

La cuestión es, cuando la caché del navegador está vacío y un usuario entra, aquí es lo que sucede:

  • el usuario solicita el URL "/". Esta URL está en caché.
  • el navegador realiza una solicitud a "/favicon.ico". Esta URL se convierte en , la nueva URL a la que se redirige cuando se autentica.
  • el usuario publica el formulario de inicio de sesión y se lo redirige a "/favicon.ico".

Para solucionar este problema, es necesario establecer "/favicon.ico" como un no asegurado recursos:

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

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

+0

Me encontré con este Q & A cuando traté de resolver esto para mi aplicación Grails. Estoy usando una configuración alterada de URLMappings para trabajar con mi aplicación AngularJS/Grails, donde Grails es principalmente un backend REST. Spring Security se usa para ajax auth y también me he encontrado con este problema en Chrome. Para los usuarios de Grails, agregue una entrada en UrlMappings como: "/favicon.ico"(controller:" home ", acción:" ajaxSuccess ") donde ajaxSuccess contiene un redireccionamiento al lugar en el que desea enviar al usuario sobre el éxito de la autenticación. – th3morg

+0

Aquí hay una buena descripción de este problema: http://www.webweaver.nu/html-tips/favicon.shtml –

0

Para Grails 3.0. 11 & Spring Security Core 3.0.2, agregue "IS_AUTHENTICATED_ANONYMOUSLY" en application.groovy en la sección:

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