如何实现ssm框架下web端http请求的cookie在server端获取?
目前在看系统的登陆这块权限校验的逻辑。发现是通过获取cookie并在response的header中返回给浏览器。如何做到的呢?
用到的就是springmvc的拦截器配置。<mvc:interceptor>
1.在spring-servlet.xml中配置登陆的拦截器:LoggingInterceptor
2.实现登陆拦截器,继承 org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
重写方法:public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
在这个预处理方法中对登陆进行验证。生成sessinId。并将cookie通过set方法返回给浏览器。
ControllerContext.set(request, response);
String strSessionId = UUID.randomUUID().toString().replaceAll("-", "");
String currentDomain = ControllerContext.getCurrentDomain();
。。。
3.完成登陆后,页面的下次请求就会出现cookie。其中cookie中的数据结构为map的key=value格式。
4.配置通用拦截器,实现登录后的f服务端获取cookie
5.然后和上一步一样,集成拦截器类,实现对应的preHander方法,在方法中获取对应字段的cookie值
然后对这个信息进行解密验证即可。