发表于: 2017-10-02 22:36:50

1 835



今天完成的事情:

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:希望能按照进度完成




返回列表 返回列表
评论

    分享到