首页 > 学院 > 开发设计 > 正文

spring security 学习记录

2019-11-10 20:23:13
字体:
来源:转载
供稿:网友

最近在研究sPRing security。之前搭建了一个简单的spring security3项目,成功运行后,想试试spring security4.想来应该不用多麻烦,结果在准备不足的情况下,发现security4的框架搭建起来,也没问题,但是就是登陆不上。这个问题困扰了我3天,于是上网查资料,发现4和3还是有很多不一样的地方。在这里将升级到security4的时候遇到的问题记录下来。

1、call refresh...之类的问题

这个是很低级的问题。我出现这种问题有两个原因。一个是schema和xsd没有升级。由于配置是拷贝原来的3的,用正在4里schema自然要换成对应的版本。

还有一个原因是里面有中文注释。去掉中文注释就好。如果一定要加注释,英文好的人用英文表述,英文不要的就用品音吧。

2、md5盐加密。

密码自然不可能明文存放。MD5+salt现在已经是很多人在用的情况了。但是spring security的UserDetail类不含salt这个属性,解决方法有几种:

1、使用username作为盐。这种方式其实不推荐,因为UserDetail自带的属性不多,而且相对固定的更少。

2、编写org.springframework.security.core.userdetails.User 的子类。我就是采取这种方式,多加了一个salt属性。这样可以在自己的UserDetailService实现类中将salt封装进去并返回。在配置文件中的saltSource中写salt这个属性完全没问题。

3、关于csrf

CSRF是用于防止跨域攻击的,在security3中是默认关闭的,但是在security4中默认开启。开启之后在登陆时候的form中要加一个input放csrf的token
<input type="text" name="${_csrf.parameterName}" id=""  value="${_csrf.token}"/>这样表单提交之后才能正常验证。不加的话会一直返回403,显示access Denied。我这个对网站安全没研究的人就是这个原因被困了几天。其他发现再更新。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表