如图W1 W2 W3是同一个公司的服务产品,这个时候只要有个服务控制用户的登录情况就可以了,这样如果是没有登录的时候就登录,如果登录过了就可以直接通过访问同级别的其他服务
免登实现一般是同浏览器使用cookie,非同浏览器或者是其他应用的时候可以提供永久性token或者是一次性的ticket。SSO服务管理token资源和ticket的失效情况以及两者的对应关系等等
第一种实现方式
@RequestMapping("/url")
public void redirectUrl() throws IOException {
Cookie cookie = new Cookie("url", "www.login.com");
cookie.setPath("/");
cookie.setDomain("app");
response.addCookie(cookie);
String token = UUID.randomUUID().toString();
response.sendRedirect("https://www.baidu.com?token=" + token);
}
sso维护token跟用户的匹配关系,每次跟服务器交互的时候都要携带token就行了。