发表于: 2018-01-31 22:35:26
1 529
今天完成的事情:
1..防短信轰炸策略.
http://blog.csdn.net/zhanglu0223/article/details/48781463
找了一个生成随机验证码的demo,整合到注册模块中,这种人容易识别,机器难识别的验证码,可以防止自动注册软件。
前端使用javascript对获取手机验证码按钮做了100秒时长的限制。
//获取验证码
var tid;
var bClicked = false;
function check2(){
if(bClicked){
alert("请稍等,如果没有收到短信,100秒后再试");
return false;
}
bClicked = true;
tid = setTimeout("doit()", 100000);
//document.forms[0].submit();
url ="/getcode"
xmlhttp =new XMLHttpRequest();
xmlhttp.open("GET",url,true); //设置访问的页面
xmlhttp.send(null); //执行访问
}
function doit(){
if(tid!=null){clearTimeout(tid);tid=null;}
bClicked = false;
}
遇到的问题:
1.
ImageIO.write(AuthCode.getAuthImg(authCode), "JPEG", httpServletResponse.getOutputStream());
报错:javax.imageio.IIOException: Can't create output stream!
Caused by: java.nio.file.AccessDeniedException: C:\Program Files\Apache Software Foundation\Tomcat 8.5\temp\imageio9107933494058020250.tmp
原因:
在使用ImageIO进行图片写操作时,默认会使用缓存目录:${tomcat}/temp,在此缓存目录会生成缓存文件imageio4138671232726624650.tmp(这一串数字应该是当前时间戳,临时文件名),有些tomcat会将temp目录删除,因此报错
解决办法:
ImageIO默认是使用缓存目录,可以通过ImageIO.setUseCache(false)来设置,更改缓存策略,不使用文件目录缓存,使用内存缓存
ImageIO.setUseCache(false); //tomcat temp/目录禁止更改,所以使用内存作为图片缓存。
ImageIO.write(AuthCode.getAuthImg(authCode), "JPEG", httpServletResponse.getOutputStream());
2.使用阿里OOS上传demo,报错。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy
at com.aliyun.oss.OSSClient.<init>(OSSClient.java:209)
at com.aliyun.oss.OSSClient.<init>(OSSClient.java:129)
at com.service.OSS.main(OSS.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
解决办法:
原因是包依赖出现了问题,阿里云的oss SDK引用了apache httpclient 4.4.1,邮件的依赖包使用的4.3.1版本。
把4.3.1改为4.4.1后解决。
收获:
1.了解了防轰炸的基本策略。
2.springmvc 重定向传参, 使用RedirectAttributes ,addFlashAttribute。可以在重定向以后的页面中取到参数。
明天的计划:
1.使用阿里云 OOS对象存储,与现在的七牛做数据迁移,编写迁移程序。
任务7开始时间:2018.1.27
预计完成时间:2018.2.5
禅道:http://task.ptteng.com/zentao/project-task.html
评论