发表于: 2017-10-30 23:55:59
2 683
今天完成的事情:
配置拦截器,这里拦截的是登录,所以只需配置prHandler这一个即可,思路是当登录成功之后储存一个session,然后拦截时只检查有无session即可.
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HttpSession httpSession = request.getSession();
String name = (String) httpSession.getAttribute("userName");
if (name != null) {
return true;}
// 如果为空则返回登录页面
request.getRequestDispatcher("/WEB-INF/views/regist/regist.jsp").forward(request,response);
return false;
}
<!--配置拦截器 -->
<mvc:interceptors>
<!-- 配置登陆拦截器 -->
<mvc:interceptor>
<!--拦截后台页面的请求-->
<mvc:mapping path="/a/a/**"/>
<!--不拦截登录页和登录的请求-->
<mvc:exclude-mapping path="/a/u"/>
<mvc:exclude-mapping path="/a/a/home"/>
<bean class="ptteng.Interceptor.Interceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
进入职业页面被拦截下来
这里的sessionID是进入官网之后生成的. 在无sessionID的情况下依然可以进入 .
把登录页面给换了,,,之前的太low..
准备小课堂.
明天计划的事情:
完成MD5加盐..
准备小课堂
数据库匹配账户密码的方式改为在JAVA里面对比.
收获:
Token实际上是比Cookie多了一个认证服务,他在用户第一次访问时就产生了Cookie,并直接确认了用户的信息,例如账号密码.从内容方面它是由头部、载荷与签名组成的,但是它还是要借助Cookie储存在本地客户端当中.
但是他比Cookie多了几个好处.
支持跨域访问: Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输.
无状态(也称:服务端可扩展行):Token机制在服务端不需要存储session信息,因为Token 自身包含了所有登录用户的信息,只需要在客户端的cookie或本地介质存储状态信息.
更适用CDN: 可以通过内容分发网络请求你服务端的所有资料(如:javascript,HTML,图片等),而你的服务端只要提供API即可.
去耦: 不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可.
更适用于移动应用: 当你的客户端是一个原生平台(iOS, Android,Windows 8等)时,Cookie是不被支持的(你需要通过Cookie容器进行处理),这时采用Token认证机制就会简单得多。
CSRF:因为不再依赖于Cookie,所以你就不需要考虑对CSRF(跨站请求伪造)的防范。
性能: 一次网络往返时间(通过数据库查询session信息)总比做一次HMACSHA256计算 的Token验证和解析要费时得多.
不需要为登录页面做特殊处理: 如果你使用Protractor 做功能测试的时候,不再需要为登录页面做特殊处理.
基于标准化:你的API可以采用标准化的 JSON Web Token (JWT). 这个标准已经存在多个后端库(.NET, Ruby, Java,Python, PHP.
任务开始时间2017-10-23
任务结束时间2017-11-05
无延期风险.
禅道;http://task.ptteng.com/zentao/task-view-12685.html
评论