spring security框架提供的默認登錄頁面,會有一個name屬性值為_csrf的隱藏域:
這是框架在用戶訪問登錄頁面之前就生成的,保存在內存中,當用戶提交表單的時候會跟着一起提交:
然后會經過spring security框架resources目錄下配置文件spring-security.xml中的CsrfFilter過濾器:
檢查表單提交的_csrf隱藏域的value與內存中保存的的是否一致,如果一致框架則認為當然登錄頁面是安全的,如果不一致,會報403forbidden錯誤。但是使用自定義的登錄頁面時,需要關閉CsrfFilter過濾器,因為自定義的頁面並沒有那樣的一個隱藏域。