【发布时间】:2015-05-15 07:01:13
【问题描述】:
我用 java 编写了一个客户端应用程序,如下所示: https://wiki.jasig.org/display/casum/restful+api
我能够获得 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 的默认登录页面。但是当再次尝试浏览器时,它可以工作。请注意,我在浏览器和我的应用程序中都使用相同的 url 进行测试。
(我已修改 CAS 配置以将 TGT 和服务票证的寿命延长 1 小时,有效期计数至 1000,所以我知道过期不是问题。)
有什么问题?这和cookie有关吗?
【问题讨论】:
标签: java cas resttemplate