2011-09-14 81 views
13

我有一個應用程序使用Spring Security 3在Tomcat上運行。我沒有定義,我的網站的任何圖標然而,當我從我的IDE sometimes運行我的應用程序後,我從我的登錄頁面,登錄重定向我的網頁:favicon.ico找不到您想要的東西?

http://localhost:8080/favicon.ico 

,並說:

404 Not Found 

這裏有一個話題:http://forum.springsource.org/showthread.php?100901-redirect-to-favicon.ico但是我沒有定義的favicon.ico做的Spring Security 3 1.3.9希望它(如果是,爲什麼有時會發生?)

回答

19

這裏的解釋是:

的問題是,當瀏覽器的緩存是空的,用戶進來, 會出現以下情況:

  • 用戶請求URL「/」。該URL被緩存。
  • 瀏覽器向「/favicon.ico」發出請求。該URL成爲 新的URL,在驗證時重定向到新的URL。
  • 用戶發佈登錄表單並被重定向到「/favicon.ico」。

要解決這個問題,你需要設置 「/favicon.ico」 作爲一個非安全 資源:

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

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

+0

我在試圖解決Grails應用程序問題時偶然發現了這個問題。我正在使用改變後的URLMappings配置來處理我的AngularJS/Grails應用程序,其中Grails主要是一個REST後端。 Spring Security用於Ajax認證,我也在Chrome中遇到過這個問題。對於Grails用戶,在UrlMappings中添加一個條目,如:「/favicon.ico"(controller:」home「,action:」ajaxSuccess「),其中ajaxSuccess包含重定向到您可能希望在auth成功時將用戶發送到的位置。 – th3morg

+0

這裏有一個很好的描述這個問題:http://www.webweaver.nu/html-tips/favicon.shtml –

0

Grails的3.0。 11 & Spring Security Core 3.0.2,在application.groovy中添加「IS_AUTHENTICATED_ANONYMOUSLY」部分:

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