1
我已經用JAVA寫的一個客戶端應用程序驗證: https://wiki.jasig.org/display/casum/restful+apiJava客戶端通過以下對CAS服務器
我能得到TGT和服務票證。我還可以通過我的應用「驗證」針對CAS服務票證即反對:
https://<HOST>:8443/cas/serviceValidate
使用該服務的票,我可以驗證它從瀏覽器的工作原理:
https://<HOST>:8443/MyProject/login/cas?ticket=<TICKET_ID_FROM_MY_CLIENT_APP>&service=<ENCODED URL OF SERVICE>
作品
但是,該服務票據不適用於我的應用程序。 我甚至嘗試過:
RestTemplate rt = new RestTemplate();
ResponseEntity<String> s1 = rt.getForEntity("https://<HOST>:8443/MyProject/login/cas?ticket=<TICKET_ID_FROM_MY_CLIENT_APP>&service=<ENCODED URL OF SERVICE>", String.class);
響應是來自CAS的默認登錄頁面。但是當再次嘗試瀏覽器時,它可以正常工作。請注意,我在瀏覽器和我的應用中使用相同的網址進行測試。
(我已經修改CAS的配置,延長TGT和服務票據的壽命爲1小時,有效期至數1000,所以我知道過期是沒有問題的。)
問題是什麼?這是否與Cookie有關?