CAS伺服器SSO模擬登入
阿新 • • 發佈:2019-01-26
一、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下的任何資源