流水账之单点登录

Posted Java入门到放弃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流水账之单点登录相关的知识,希望对你有一定的参考价值。

需求:单点登录。访问a.com登录后,再访问b.com,不需要再登录。

        

实现思路:所有业务系统统一调用登录认证服务,使用同一份身份信息


开工:

  1. 先搞个登录认证服务,完成简单的模拟登录功能

@RequestMapping(value = "login",method = RequestMethod.GET)
public String login(){
return "/login";
}


<form action="/login" method="post">
   用户名:<input type="text" name="name"/>
   密码:<input type="password" name="pwd"/>
   <button value="登录"  />
</form>

登录页面

@ResponseBody
@RequestMapping(value = "login",method = RequestMethod.POST)
public String loginPost(String name, String pwd, HttpServletResponse response) throws IOException {
if(loginService.login(name,pwd)){
response.addCookie(new Cookie("session","i-am-a-session"));
     return "登录成功";
  }
return "登录失败";
}

处理登录请求,登录成功的生成一个session,存入cookie,这个cookie属于login站点。


2.登录搞定了,根据这个seesion保持登录状态

@ResponseBody
@RequestMapping(value = "auth",method = RequestMethod.GET)
public String auth(@CookieValue(defaultValue = "")String session) {
if(session.equals("i-am-a-session")){
return "登录过了无需登录";
   }
return "没登陆啊,去login登录把";
}

校验是否登录,用两个浏览器结果分别为



3.退出功能,就是把存在服务器端的,该用户的session删掉。暂略


接下来,把伪代码,完善一下。至此,服务端登录功能齐活。

----------------未完待续。

以上是关于流水账之单点登录的主要内容,如果未能解决你的问题,请参考以下文章

最准确的单点登录SSO图示和讲解(有代码范例)|手把手教做单点登录(SSO)系列之二

Web系统之常用单点登录协议

Shiro单点登录之集成CAS

Shiro单点登录之集成CAS

Jenkins之Pipeline代码流水线

SSO之CAS框架单点退出,退出到CAS登录界面