最近在研究sPRing security。之前搭建了一個簡單的spring security3項目,成功運行后,想試試spring security4.想來應該不用多麻煩,結果在準備不足的情況下,發現security4的框架搭建起來,也沒問題,但是就是登陸不上。這個問題困擾了我3天,于是上網查資料,發現4和3還是有很多不一樣的地方。在這里將升級到security4的時候遇到的問題記錄下來。
這個是很低級的問題。我出現這種問題有兩個原因。一個是schema和xsd沒有升級。由于配置是拷貝原來的3的,用正在4里schema自然要換成對應的版本。
還有一個原因是里面有中文注釋。去掉中文注釋就好。如果一定要加注釋,英文好的人用英文表述,英文不要的就用品音吧。
密碼自然不可能明文存放。MD5+salt現在已經是很多人在用的情況了。但是spring security的UserDetail類不含salt這個屬性,解決方法有幾種:
1、使用username作為鹽。這種方式其實不推薦,因為UserDetail自帶的屬性不多,而且相對固定的更少。
2、編寫org.springframework.security.core.userdetails.User 的子類。我就是采取這種方式,多加了一個salt屬性。這樣可以在自己的UserDetailService實現類中將salt封裝進去并返回。在配置文件中的saltSource中寫salt這個屬性完全沒問題。
<input type="text" name="${_csrf.parameterName}" id="" value="${_csrf.token}"/>這樣表單提交之后才能正常驗證。不加的話會一直返回403,顯示access Denied。我這個對網站安全沒研究的人就是這個原因被困了幾天。其他發現再更新。
新聞熱點
疑難解答