使用CAS的RESTFUL接口使CS系统单点登录BS系统

准备

首先参考前面文章来配置好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 Created  
Server: Apache-Coyote/1.1  
Date: Tue, 07 Jan 2014 01:24:30 GMT  
Location: http://10.1.81.223:8080/cas-server-webapp/v1/tickets/TGT-1-sof0YkUAyxSBOWcIFI6lZRmpBmOBgmmNlwL7xvKWbfir4J7hMH-cas  
Accept-Ranges: bytes  
Server: Noelios-Restlet-Engine/1.1..1  
Content-Type: text/html;charset=ISO-8859-1  
Content-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 OK  
Server: Apache-Coyote/1.1  
Date: Tue, 07 Jan 2014 02:05:53 GMT  
Accept-Ranges: bytes  
Server: Noelios-Restlet-Engine/1.1..1  
Content-Type: text/plain;charset=ISO-8859-1  
Content-Length: 29  
  
ST-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-cas  
HTTP/1.1 200 OK  
Server: Apache-Coyote/1.1  
Date: Tue, 07 Jan 2014 02:20:39 GMT  
Accept-Ranges: bytes  
Server: Noelios-Restlet-Engine/1.1..1  
Content-Length: 0  

 

其他

如果报错: 找不到此票根的错误,则可能是失效时间太短

修改WEB-INF/ticketExpirationPolicies.xml 里修改

<!-- This argument is the time a ticket can exist before its considered expired.  -->  
        <constructor-arg  
            index="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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
server 地址: http://www.jasig.org/cas/download client 地址: http://www.ja-sig.org/downloads/cas-clients/ 当前最新版本 cas-server-3.4.2 , cas-client-3.1.10 2. 安装 server l 解压 cas-server-3.4.2 ,将 cas-server-3.4.2\modules\cas-server-webapp-3.4.2.war 拷贝到 tomcat 的 webapps 下。 3. 配置 server 3.1. 添加 cas server 依赖的 jar n cas-server-3.4.2\modules\cas-server-support-jdbc-3.4.2.jar 、 cas-server-integration-restlet-3.4.2.jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 数据库驱动 jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 到 apache 网站下载下面三个 cas server 依赖 jar 包拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下 Ø http://apache.freelamp.com/commons/collections/binaries/commons-collections-3.2.1-bin.zip Ø http://apache.etoak.com/commons/dbcp/binaries/commons-dbcp-1.4-bin.zip Ø http://apache.etoak.com/commons/pool/binaries/commons-pool-1.5.4-bin.zip n 下载 restlet 相关 http://www.restlet.org/downloads/ , 解压后将下面 jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib: ( 它奶奶地这一步骤很折腾 ) com.noelios.restlet.ext.servlet_2.5.jar com.noelios.restlet.ext.spring_2.5.jar com.noelios.restlet.jar org.restlet.ext.spring_2.5.jar org.restlet.jar n 下载 CGlib http://sourceforge.net/projects/cglib/files/ 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 。 n 下载 ASM/OW2 http://forge.ow2.org/projects/asm/ 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 。 3.2. 添加数据源
### 回答1: 第三方系统对接CAS(Central Authentication Service)RESTful接口是指将第三方系统CAS系统进行集成,使得第三方系统可以通过调用CASRESTful接口来实现用户认证和授权功能。 第三方系统CAS系统对接的过程通常包括以下几个步骤: 1. 配置CAS服务器:在CAS服务器上进行相关配置,包括定义用户认证的方式(例如用户名密码、单点登录等)和认证成功后的返回数据格式等。 2. 接入CAS客户端:在第三方系统中集成CAS客户端,通过CAS客户端与CAS服务器建立连接。 3. 请求认证:当用户访问第三方系统时,第三方系统将用户请求重定向到CAS服务器的认证接口,进行用户认证。 4. 获取票据:用户在CAS服务器上成功认证后,CAS服务器会返回一个票据(ticket),第三方系统将该票据作为参数发送给CAS服务器的票据校验接口。 5. 校验票据:CAS服务器收到票据后,通过票据校验接口验证票据的有效性,并返回相应的认证结果给第三方系统。 6. 授权访问:验证成功后,第三方系统可以根据CAS服务器返回的用户信息来进行授权访问,如获取用户的角色、权限等。 7. 注销认证:当用户退出第三方系统时,第三方系统需要调用CAS的注销接口来注销用户的认证信息。 通过以上步骤,第三方系统可以通过CASRESTful接口进行用户认证和授权,实现了统一的登录认证和单点登录功能,提升了系统的安全性和用户体验。 ### 回答2: 第三方系统对接CAS RESTful接口,首先需要了解CAS(Central Authentication Service)是什么。CAS是一种单点登录(Single Sign-On)协议,提供了认证和授权的功能,可以实现不同系统之间的用户身份单点登录和安全交互。 对接CAS RESTful接口的过程一般包括以下几个步骤: 1.了解CAS RESTful接口文档:首先需要仔细阅读CAS RESTful接口的文档,了解接口的功能、参数及返回值。 2.注册第三方系统:在CAS系统中注册第三方系统的信息,包括系统名称、系统URL等。注册后会获得一个唯一的系统凭证。 3.获取CAS登录凭证:第三方系统需要通过CAS RESTful接口CAS系统发送登录请求,包括用户名和密码等信息。CAS系统会验证用户身份,并返回给第三方系统一个登录凭证,通常是一个token或者ticket。 4.验证CAS登录凭证:第三方系统拿到登录凭证后,需要将凭证作为参数发送给CAS RESTful接口进行验证。如果凭证有效,CAS系统会返回相应的用户信息给第三方系统。 5.其他接口调用:一旦用户身份验证成功,第三方系统可以调用CAS RESTful提供的其他接口,进行用户授权、访问受限资源等操作。 6.处理CAS回调:CAS系统会通过回调机制通知第三方系统用户的登录状态变化等重要事件。第三方系统需要相应地处理这些回调,确保与CAS系统的同步更新。 总的来说,对接CAS RESTful接口需要进行注册、登录凭证获取和验证、其他接口调用等步骤。通过正确地使用CAS RESTful接口,第三方系统可以实现与CAS系统的安全交互和用户身份认证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值