项目-单点登录系统
1 SSO介绍
单点登录(SingleSignOn,SSO),当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。
2 单点登录实现策略
- 当用户输入用户名和密码时需要将数据传递给jt-web服务器进行登录操作.
- jt-web服务器需要将数据传到jt-sso服务器中进行数据的校验.
- jt-sso根据username/password查询数据库校验数据是否有效.
- 如果用户名和密码正确则将数据经过处理之后保存到redis中 KEY=UUID(每次生成的都不一样) VALUE=“userJSON”
- 如果用户写入redis成功,之后需要将用户的登录的凭证返回给客户端.
- JT-WEB服务器将获取的TICKET信息保存到客户端的Cookie中,方便下次使用. 并且要求cookie共享的.
3 用户登出操作
- 删除Redis中的数据
- 删除Cookie中的数据.
//获取value之后删除cookie
String ticket = cookie.getValue();
jedisCluster.del(ticket); //删除redis中的数据
//删除cookie时 必须与原来的cookie数据保持一致
cookie.setDomain("jt.com");
cookie.setPath("/");
cookie.setMaxAge(0);
response.addCookie(cookie);