SSO

单点登录流程


 

单点登录:

  单点登录会有客户端和服务端,服务端是用来验证账号和密码的正确性、cookie的有效性、写cookie的操作;客户端一般为过滤器用来验证cookie是否存在,如果存在的话会通过http请求访问服务端接口验证存在的cookie的有效性,如果不存在或者是存在不正确,会重定向到服务端进行处理。

服务端:

1、用来接受客户端打过来的请求和接受输入账号密码的页面的请求分别为doGetdoPost;因为客户端的过滤器是通过response.sendRedirect发送的,是一个get请求,所以通过doGet方法来接受,在这个方法内部获客户端过滤器传古来的原URL,放到response中即:

     String origUrl = req.getParameter("origUrl");

 req.setAttribute("origUrl", origUrl);

跳转到登录页面,可以在输入账号密码的页面上设置隐藏标签,用于和账号密码一起发送给服务端的doPost方法进行处理。

  2、在服务端的doPost方法中主要做两件事:第一是验证账号密码的有效性,如果有效那么会做第二件事,根据具体业务逻辑场景生成cookie,并写入到response中,通过中:

response.addCookie(tokenCookie);

response.sendRedirect(origUrl);//origUrl为原地址

跳转到原有的地址。

 客户端:

在具体的业务工程项目中一般会通过引入写好的jar作为过滤器的方式对cookie进行验证。改过滤器做两件事:

1、验证特定namecookie是否存在

        // 从请求中提取token

String token = CookieUtil.getCookie(req, "token");

   2、存在的话验证cookie的有效性。可以通过http接口请求服务端验证cookie有效性的接口来进行数据验证。

如果cookie不存在或者cookie不正确,那么需要通过response.sendRedirect发送给服务端,此时服务端的doGet会接受该请求,进入服务端的逻辑处理。

单点登录:

  单点登录会有客户端和服务端,服务端是用来验证账号和密码的正确性、cookie的有效性、写cookie的操作;客户端一般为过滤器用来验证cookie是否存在,如果存在的话会通过http请求访问服务端接口验证存在的cookie的有效性,如果不存在或者是存在不正确,会重定向到服务端进行处理。

服务端:

1、用来接受客户端打过来的请求和接受输入账号密码的页面的请求分别为doGetdoPost;因为客户端的过滤器是通过response.sendRedirect发送的,是一个get请求,所以通过doGet方法来接受,在这个方法内部获客户端过滤器传古来的原URL,放到response中即:

     String origUrl = req.getParameter("origUrl");

 req.setAttribute("origUrl", origUrl);

跳转到登录页面,可以在输入账号密码的页面上设置隐藏标签,用于和账号密码一起发送给服务端的doPost方法进行处理。

  2、在服务端的doPost方法中主要做两件事:第一是验证账号密码的有效性,如果有效那么会做第二件事,根据具体业务逻辑场景生成cookie,并写入到response中,通过中:

response.addCookie(tokenCookie);

response.sendRedirect(origUrl);//origUrl为原地址

跳转到原有的地址。

 客户端:

在具体的业务工程项目中一般会通过引入写好的jar作为过滤器的方式对cookie进行验证。改过滤器做两件事:

1、验证特定namecookie是否存在

        // 从请求中提取token

String token = CookieUtil.getCookie(req, "token");

   2、存在的话验证cookie的有效性。可以通过http接口请求服务端验证cookie有效性的接口来进行数据验证。

如果cookie不存在或者cookie不正确,那么需要通过response.sendRedirect发送给服务端,此时服务端的doGet会接受该请求,进入服务端的逻辑处理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值