流程图
参数
不同域名之下(不同父域名)
cookie+session+redis
流程追踪
用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
sso认证中心发现用户未登录,将用户引导至登录页面
用户输入用户名密码提交登录申请s
so认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌。
//client携带redirect_url来这里请求我们的认证
//那么需要再认证页面上保存下来redirect_url
//@CookieValue(value = "sso_token", required = false)
@GetMapping("/login.html")
public String loginPage(@RequestParam("redirect_url") String url, Model model, @CookieValue(value = "sso_token", required = false) String sso_token) {
//如果存在sso_token
if (!StringUtils.isEmpty(sso_token)) {
return "redirect:" + url + "?token=" + sso_token;
}
//知道下个页面跳转的位置
model.addAttribute("url", url);
return "login";
}