我還沒有找到任何利用Python來通過CAS的人的例子。希望也許Kenneth Reitz可以告訴我'請求'可以如何簡單...Python請求和CAS
基本上,我無法通過CAS登錄...從不驗證我的Python嘗試。 (請注意,我定義了兩個網址.... url1是主網頁,url2是CAS網站的重定向鏈接...我已經知道重定向鏈接,因此使它變得簡單)。
我的理解是我所要做的就是捕獲CAS發送給我的JsessionId作爲cookie,然後獲取該cookie並將jsessionid追加到url上並作爲POST發送回CAS我的用戶名/密碼)。但是,此腳本每次都會失敗。
一些CAS大師能幫助我嗎?我根本無法弄清楚爲什麼它不會認證我。
import sys
import requests
my_config = {'verbose': sys.stderr }
url1 = 'http://agnes:8080'
url2 = 'https://agnes:8543/irisCAS/login?service=http%3A%2F%2Fagnes%3A8080%2FirisRootWeb%2Fj_spring_cas_security_check'
response = requests.get(url1, headers=headers, verify=False)
print response.cookies
cookies = response.cookies
response = requests.post(url2, headers=headers, verify=False, config=my_config, params=cookies, auth=('username', 'password'))
print response.status_code
print response.content
輸出....注意如何將jsessionId追加到url2,所以這是很好的.....我想。
{'JSESSIONID': 'EEE38382A1D5AAACA58E12433BDA0BFF'}
2012-05-18T15:04:17.668601 POST https://agnes:8543/irisCAS/login?service=http%3A%2F%2Fagnes%3A8080%2FirisRootWeb%2Fj_spring_cas_security_check&JSESSIONID=EEE38382A1D5AAACA58E12433BDA0BFF
200
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
...
...
</script>
<form id="fm1" class="fm-v clearfix" action="/irisCAS/login;jsessionid=30ABCAC79FEA5B48399053939530A608?service=http%3A%2F%2Fagnes%3A8080%2FirisRootWeb%2Fj_spring_cas_security_check&JSESSIONID=B6235434D64C5E2E6C063BA3E1C1AC43" method="post">
<div class="box fl-panel" id="login">
<!-- Congratulations on bringing CAS online! The default authentication handler authenticates where usernames equal passwords: go ahead, try it out. -->
<h2>Enter your UserId and Password</h2>
(this is just the xml of the CAS login page that I can't get past)
...
...
對於記錄,你可以接受你自己的答案 – TankorSmash