1、我使用jjwt来进行token验证,可是前端html页面的ajax发出的请求,后台总是接收不到header的数据。后来使用jQuery.form.js这个库就很容易获取到header的数据了。
2、$('#fm').ajaxSubmit({ url : url, type : 'post', dataType : 'json', headers: { "Authorization": token } ........})
3、用户访问包含表单的页面 服务器在这次会话中 创建一个session对象 并产生一个令牌值 将这个令牌值作为隐藏输入域值 随表单一起发送到客户端 同时将令牌值保存到session中。
4、用户提交页面 服务器端首先判断请求参数中的令牌值和Session中保存的令牌值是否相等 如果相等 则清楚session的令牌值 然后执行数据处理操作 如果不相等 则提示用户已经提交过表单 同时产生一个新的令牌值保存到session中 当用户重读提交数据页面的时候 将新产生的令牌值最为隐藏输入域的值。
5、TokenProcessor类主要提供下列方法:public java.lang.String ge荏鱿胫协nerateToken(HttpServletRequest request);根据当前用户会话ID和当前的系统时间生成一个唯一的令牌值;public void savaToken(HttpServletRequest request)调用generateToken()方法产生一个令牌值 并把它保存到Session中 如果Session不存在 则创建一个新的Session;public void resetToken(HttpServletRequest request);清楚保存在用户Session中的令牌值。