使用CAS的RESTFUL接口使CS系统单点登录BS系统
来源:互联网 发布:淘宝为什么认证不通过 编辑:程序博客网 时间:2024/05/21 06:49
准备
首先参考前面文章来配置好CAS,并且配置好RESTFUL,参考:
http://blog.csdn.net/happyteafriends/article/details/7450120
场景如下,
CAS地址为:http://10.1.81.223:8080/cas-server-webapp
两个WEB应用地址:http://10.1.81.223:8080/webapp2
http://10.1.81.223:8080/webapp1
目标:CS架构的程序调用REST最终获取到ST,并登录webapp1
步骤如下
获取ticket
curl -i -X POST -d "username=admin&password=admin&service=http://10.1.81.223:8080/webapp1" http://10.1.81.223:8080/cas-server-webapp/v1/tickets/结果:
HTTP/1.1 201 CreatedServer: Apache-Coyote/1.1Date: Tue, 07 Jan 2014 01:24:30 GMTLocation: http://10.1.81.223:8080/cas-server-webapp/v1/tickets/TGT-1-sof0YkUAyxSBOWcIFI6lZRmpBmOBgmmNlwL7xvKWbfir4J7hMH-casAccept-Ranges: bytesServer: Noelios-Restlet-Engine/1.1..1Content-Type: text/html;charset=ISO-8859-1Content-Length: 444<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>201 The request has been fulfilled and resulted in a new resource being created</title></head><body><h1>TGT Created</h1><form action="http://10.1.81.223:8080/cas-server-webapp/v1/tickets/TGT-1-sof0YkUAyxSBOWcIFI6lZRmpBmOBgmmNlwL7xvKWbfir4J7hMH-cas" method="POST">Service:<input type="text" name="service" value=""><br><input type="submit" value="Submit"></form></body></html>可见这里已经已经生成了TGT
第二步,通过TGT + SERVICE 生成ST
curl -i -X POST -d "service=http%3A%2F%2F10.1.81.223%3A8080%2Fwebapp1%2F" http://10.1.81.223:8080/cas-server-webapp/v1/tickets/TGT-1-sof0YkUAyxSBOWcIFI6lZRmpBmOBgmmNlwL7xvKWbfir4J7hMH-cas注意这里的service必须所编码后的,否则到后面会报错:
票根XXX 不符合目标服务
结果:
HTTP/1.1 200 OKServer: Apache-Coyote/1.1Date: Tue, 07 Jan 2014 02:05:53 GMTAccept-Ranges: bytesServer: Noelios-Restlet-Engine/1.1..1Content-Type: text/plain;charset=ISO-8859-1Content-Length: 29ST-1-iTyUm4scimR6UlaVFGbM-cas可见这里得到里ST,直接打开浏览器用这个ST去登录WEBAPP1既可
第三步,登录
打开浏览器输入
http://10.1.81.223:8080/webapp1/?ticket=ST-1-iTyUm4scimR6UlaVFGbM-cas
发现可以登录。这个ST用一次就失效了。
退出
退出主要是使TGT失效,方法如下:
curl -i -X DELETE http://10.1.81.223:8080/cas-server-webapp/v1/tickets/TGT-1-1fPYM6FWvLX9ZIRqtp1eF9nQAypB79VdyyYG29Bef6iFvyCnwT-casHTTP/1.1 200 OKServer: Apache-Coyote/1.1Date: Tue, 07 Jan 2014 02:20:39 GMTAccept-Ranges: bytesServer: Noelios-Restlet-Engine/1.1..1Content-Length: 0
其他
如果报错: 找不到此票根的错误,则可能是失效时间太短
修改WEB-INF/ticketExpirationPolicies.xml 里修改
<!-- This argument is the time a ticket can exist before its considered expired. --><constructor-argindex="1"value="1000000" />值可以改大点,我这里改的有点过大了,可能是改成了1000秒
报错:票根XXX 不符合目标服务
上面提到了这个问题了,注意对service进行编码,变成类似于:
http%3A%2F%2F10.1.81.223%3A8080%2Fwebapp1%2F 才可以参考:https://wiki.jasig.org/display/casum/restful+api
0 0
- 使用CAS的RESTFUL接口使CS系统单点登录BS系统
- cas单点登录系统
- cas单点登录系统
- java单点登录系统CAS的简单使用
- java单点登录系统CAS的简单使用
- java单点登录系统CAS的简单使用
- Java 单点登录系统 CAS 的简单使用
- CAS实现的单点登录系统
- CAS实现的单点登录系统
- CAS实现的单点登录系统
- CAS单点登录系统整合——注册的问题
- 开源的单点登录系统CAS入门
- 单点登录cas的使用
- (系统框架之单点登录)使用 CAS 在 Tomcat 中实现单点登录
- Web 单点登录系统 JA-SIG CAS
- 单点登录系统cas资料汇总
- 单点登录系统cas资料汇总
- CAS 介绍 单点登录认证系统
- Servlet.service() for servlet default threw exception java.lang.IllegalStateException a
- SQL Server 中OpenDataSource与OpenRowSet
- JUnit与Spring的整合——JUnit的TestCase如何自动注入Spring容器托管的对象
- WebRTC常用网址
- woff格式字体怎么打开和编辑?
- 使用CAS的RESTFUL接口使CS系统单点登录BS系统
- smp_prepare_boot_cpu
- 十进制小数转为二进制小数
- svn merge
- 工作记录--DIY开发记录
- WGS84、GCJ-02(火星坐标)、百度坐标,Web墨卡托坐标
- C语言指针传递和内存分配
- Java:对象的序列化
- Linux date命令的用法