一、CAS及原理
原理参考文章https://blog.csdn.net/javaloveiphone/article/details/52439613
二、模拟登录开始
1. 拿到网站进行抓包 工具Fiddler4(工具使用方法自行百度)
2. 分析参数
主要参数:
lt :[REQUIRED] 登录令牌;
该参数是login ticket id,主要是在登录前产生的一个唯一的“登录门票”,然后提交登录后会先取得"门票",确定其有效性后才进行用户名和密码的校验,否则直接重定向至 cas/login 页。
分析登录界面
发现lt参数为一个隐式参数
使用java代码获取参数过程
// 获取lt
public static String GetLT() throws Exception {
Document doc = Jsoup.connect("localhost/cas/login").get();
// Elements info = doc.select("div");
Elements info = doc.select("xxx").select("xxx").select("input[name = lt]");
System.err.println(info);
return info.val();
}
3. 请求过程
第一次请求数据为post请求,状态码200
第二次请求状态码为302,方式为get并且后边带了第一次响应的ticket参数
重要参数:ticket 此参数为服务器验证通过后返回的门票,拿到门票之后再去客户端进行验证
另一个重要参数
Cookie: JSESSIONID=xxxxxxxxxxxxxxxxxxxxx;此处不做详细介绍
经过两次302验证之后就可以随意请求cas下的任何资源