发表于: 2017-10-02 22:36:50
1 833
今天完成的事情:
1.在登陆时用MD5对密码加密和验证
2.用DES来生成token并存入cookies
3.完成登陆退出按钮,并删除登陆保存的cookie
明天计划的事情:
1.写出拦截器
2.完成拦截器免登录
3.尝试对/u的未登录用户进行拦截
遇到的问题:
1. 删除cookie不能成功删除
需要一下几行代码配合
第一,把对应cookie的value的值设为空
Cookie cookieToken = new Cookie(cookies.getName(),null);
第二,把其时间域设置为0,表示立即删除,但是这时候并没有删除,还要第三步
cookieToken.setMaxAge(0);
第三,设置它的有效范围和向其发送cookie的设置
cookieToken.setPath("/");
response.addCookie(cookieToken);
收获:
1. 在登陆时用MD5对密码加密和验证
用DES来生成token并存入cookies
String DES_KEY = "12345678";
String user = request.getParameter("username");
String pass = request.getParameter("password");
loggerController.info("user-jsp: "+user +"\npass-jsp: "+ pass);
OutputStream out = response.getOutputStream();
if(user != "" && pass !="")
{
try{
int userBeing = studyService.selectUserNumber(user);
if(userBeing != 0){
Student student = studyService.selectUser(user);
loggerController.info("student: "+ student);
Md5Utils md5 = new Md5Utils();
pass = md5.getMD5(pass);
loggerController.info("pass--MD5: "+ pass);
if(pass.equals(student.getPass())){
//对用户id和登陆时间进行DES加密
DesUtils desUtils = new DesUtils();
String id = student.getId().toString();
byte[] str1 = desUtils.desCrypto(id.getBytes(),DES_KEY);
String createDate = String.valueOf(System.currentTimeMillis());
byte[] str2 = desUtils.desCrypto(createDate.getBytes(),DES_KEY);
//对加密后的id和登陆时间字符进行Base64编码
String results = Base64.encodeBase64String(str1) + "——" + Base64.encodeBase64String(str2);
loggerController.info("token-cookie: " + results);
/*设置cookie, Cookie 里面放的是 用户的id 和 创建时间*/
Cookie cookieToken = new Cookie("token",results);
cookieToken.setMaxAge(60*2);//2分钟有效时间
cookieToken.setPath("/");
response.addCookie(cookieToken);
response.sendRedirect(request.getContextPath()+"/a/home");
}
2. 完成删除cookie的事件方法
//查看当前所有cookie
Cookie[] cookies = request.getCookies();
loggerController.info("退出登录--cookie数量: " + cookies.length);
for(int i = 0;i<cookies.length;i++){
if("token".equals(cookies[i].getName())){
Cookie cookieToken = new Cookie(cookies[i].getName(),null);
/*同样的cookie名字 可以代替 原来的那个,设置 有效时间为o 就可以注销 */
cookieToken.setMaxAge(0);
cookieToken.setPath("/");
response.addCookie(cookieToken);
break;
}
}
进度:
任务开始时间:8.14
预计完成时间:10.6
是否有延期风险:有,严重低估了任务5的知识量
禅道:http://task.ptteng.com/zentao/project-task-264.html
PS:希望能按照进度完成
评论