单点登录Redis存储Session及Cookie场景介绍

首先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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值