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