原理
利用浏览器Cookies储存当前登录用户信息,使得同域网站能够共享使用该Cookies储存的用户信息,取得当前登录用户,实现单点登录。
浏览器 Cookies储存设置
域:hello.com
储存键名称:sso.hello.com
存储的值:userId=SJDJAJHSH
示例:cookie:sso.hello.com=userId=SJDJAJHSH;
注意:存储的cookies一般都会使用加密算法进行加密,所以获取的cookies需要使用对应的算法进行解密
通过访问的url获取相应的cookies
@ResponseBody
@RequestMapping("/getCookie.do")
public String getCookie(HttpServletRequest request) throws Exception {
String value = "";
Enumeration headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String key = (String) headerNames.nextElement();
if (key.equals("cookie")) {
value = request.getHeader(key);
break;
}
}
return value;
}