Web 未找到favicon.ico错误?

Web 未找到favicon.ico错误?,web,spring-security,http-status-code-404,favicon,Web,Spring Security,Http Status Code 404,Favicon,我有一个使用SpringSecurity3的应用程序在Tomcat上运行。我没有为我的网站定义任何favicon,但是当我从IDE运行我的应用程序时,有时在我从登录页面登录后,它会将我的页面重定向到: http://localhost:8080/favicon.ico 并说: 404 Not Found 这里有一个主题:但是我没有定义favicon.ico Spring Security 3是否默认需要它(如果是,为什么有时会发生?以下是解释: 问题是,当浏览器缓存为空且用户进入时, 发生的

我有一个使用SpringSecurity3的应用程序在Tomcat上运行。我没有为我的网站定义任何favicon,但是当我从IDE运行我的应用程序时,
有时
在我从登录页面登录后,它会将我的页面重定向到:

http://localhost:8080/favicon.ico
并说:

404 Not Found

这里有一个主题:但是我没有定义favicon.ico Spring Security 3是否默认需要它(如果是,为什么有时会发生?

以下是解释:

问题是,当浏览器缓存为空且用户进入时, 发生的情况如下:

  • 用户请求URL“/”。此URL已缓存
  • 浏览器向“/favicon.ico”发出请求。此URL变为 身份验证时重定向到的新URL
  • 用户发布登录表单并重定向到“/favicon.ico”
要解决此问题,需要将“/favicon.ico”设置为非安全的 资源:

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


摘自:

对于Grails 3.0.11和Spring Security Core 3.0.2,请在application.groovy中的以下部分添加“匿名身份验证”:

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

我在尝试为我的Grails应用程序解决这个问题时,偶然发现了这个问答。我正在使用经过修改的URLMappings配置来处理我的AngularJS/Grails应用程序,其中Grails主要是一个REST后端。Spring Security用于ajax auth,我在Chrome中也遇到过这个问题。对于Grails用户,在UrlMappings中添加一个条目,如:“/favicon.ico”(控制器:“home”,操作:“ajaxSuccess”),其中ajaxSuccess包含一个重定向,指向您可能希望在验证成功时将用户发送到的位置。这里有关于此问题的详细描述: