首页 > 其他 > 详细

课程四

时间:2019-03-20 12:42:25      阅读:147      评论:0      收藏:0      [点我收藏+]

注册、登录、浏览Interceptor、未跳转登录、数据安全性

注册:

  输入参数(String username, String password, boolean rememberme)

  首先对参数进行判断,用户名如果为空,返回对应的信息,密码如果为空,返回对应的信息,再去数据库中查找用户名如果被注册,返回对应的信息,如果没有被都符合,新建User,设置salt,将password + slat 进行MD5加密,

  最后再添加ticket,ticket与userId绑定,ticket是一段字符串,设置有效期限,设置状态(0正常,1失效)。返回包含ticket的map,在controller中会对Cookie进行设置,添加新的ticket,设置Cookie有效期

浏览Interceptor(passportInterceptor):preHandle里对用户进行辨识,如果当前请求没有包含ticket,或者ticket过期,preHandle里不会进行处理,如果懈怠了有效的ticket(ticket没有过期,状态为0),会将当前ticket对应的user信息添加到                      hostHolder中,hostHolder是包装了ThreadLocal类的一个类,包含的是user用户信息。                                                                                                                                                                                                                                                          postHandle方法中如果hostHolder中包含了用户信息,会加入到ModelAndView中,让前端进行渲染。                                                                                                                                                                                                                   afterCompletion方法中,会将hostHolder中的用户信息移除。

未跳转登录(loginRequiredInterceptor): 当用户浏览需要登录的界面时,会跳出拦截器进行判断,在preHandle中判断当前hostHolder中是否有用户信息,如果没有,使用httpServletResponse.sendRedirect方法直接跳转到登录页面,next参数为当前页面的URI。

                       如果有用户信息,则不进行任何操作。

拦截器需要注册  继承WebMvcConfigurerAdapter重写addInterceptors(InterceptorRegistry registery)方法,register.add(passportInterceptor),register.add(loginRequiredInterceptor).addPathPatterns(“/user/*”);

课程四

原文:https://www.cnblogs.com/laphome/p/10563988.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!