首先response如果是成功的话,就是登陆成功,我就不往session里面放值了,直接调用RedisPoolUtil,setEx方法,
在设置的时候,直接把他的时间加上,key就用session.getId(),用session的id,value就是JsonUtil,就是我们之前
封装的,obj2String,然后把response的data放进来,然后再放一下他的时间,这个时间,直接加到这里面,public interface
RedisCacheTime,直接设置的时间,int,int一个什么值呢,REDIS_SESSION_EXTIME,等于60*30,也就是30分钟,因为他的单位
是秒,60秒是一分钟,登陆的时候我们把redis,里面放的session,有效期设置为30分钟,然后这里面调用一下他
/**
* 用户登录
* @param username
* @param password
* @param session
* @return
*/
@RequestMapping(value = "login.do",method = RequestMethod.POST)
@ResponseBody
public ServerResponse<User> login(String username, String password, HttpSession session, HttpServletResponse httpServletResponse){
ServerResponse<User> response = iUserService.login(username,password);
if(response.isSuccess()){
// session.setAttribute(Const.CURRENT_USER,response.getData());
CookieUtil.writeLoginToken(httpServletResponse,session.getId());
RedisShardedPoolUtil.setEx(session.getId(), JsonUtil.obj2String(response.getData()),Const.RedisCacheExtime.REDIS_SESSION_EXTIME);
}
return response;
}
我们现在要把登陆信息保存到服务端的redis里面,那我们看一下,sessionId是什么,开始部署tomcat,我们要配置
两个tomcat server,第一个是tomcat1,我们再配置一个,因为前面的集群是做了两个tomcat,把第一个tomcat改一下名字,
方便我们来识别,tomcat1和2就OK了,可以看到,这里面用的类也是不一样的,然后我们先把他部署到tomcat1上,JRE选择我们
配置的,1是8080端口,2是9080,默认给我们tomcat的一个配置,选择war包,再强调一次,因为我们用的斜杠,我们点击debug启动,
这边打一个断点,可以看到我们这个首页已经启动了,我们点开检查,然后看一下application里面的cookie,我们可以看到这个
时候有一个cookie
JSESSIONID,value是F51C,这么一个value,因为我们这个代码,login.do是需要post请求的,所以我们还要把测试工具
打开,我们来模拟请求一下,现在进入到属性的界面,这里都是一期讲的各种接口,下面有一个2.0,这个是我调试时候用的,
把它删除掉,创建一个project,然后在里面创建一个service,然后add a request,我们打开这个open request,开始写
我们的模拟,我们不用https的,请求localhost,login.do,然后add两个参数,一个是username,另外一个是password,我们这个
账号密码还要准确的,否则呢,isSuccess就进不来了,账号密码都是admin,当然这是我们测试库的测试密码,然后我们点击send