CAS单点登录六-Restful API

CAS-server提供了restful api供调用,要开启restful服务,首先要找到与之对应的jar包。

cas源代码里cas-server-integration-restlet这个工程就是支持restful的模块,编译出来后得到一个jar包,3.6之前的版本也可以直接下载到这个jar包。

把jar包cas-server-integration-restlet-3.5.2.jar,放到cas-server-webapp的lib目录下,除了这个jar包之外,还需要几个jar包,分别是:

com.noelios.restlet.ext.servlet,jar

com.noelios.restlet.ext.spring-1.1.0.jar

com.noelios.restlet.jar

org.restlet.ext.spring-1.1.10.jar

org.restlet-1.1.10.jar

都一并放到cas-server-webapp的lib目录下。

然后修改server的web.xml,加入一个restful的servlet

<servlet>
    <servlet-name>restlet</servlet-name>
    <servlet-class>com.noelios.restlet.ext.spring.RestletFrameworkServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
 
<servlet-mapping>
    <servlet-name>restlet</servlet-name>
    <url-pattern>/v1/*</url-pattern>
</servlet-mapping>

再找到WEB-INF\spring-configuration下的ticketExpirationPolicies.xml,把timetokill的这个时间改大一点,10秒有点短,手动测试的时候一下ticket就过期了

<util:constant id="SECONDS" static-field="java.util.concurrent.TimeUnit.SECONDS"/>
    <bean id="serviceTicketExpirationPolicy" class="org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy"
          c:numberOfUses="1" c:timeToKill="${st.timeToKillInSeconds:10}" c:timeUnit-ref="SECONDS"/>

server端的配置基本就这么多,然后可以启动server的tomcat

最后就可以用restful的工具来进行测试了,我这里用的是curl

第一步是登录换取tgt

curl -i -k -X  POST -d "username=lhc&password=123456&service=http://192.168.56.101/omw/do/main/index" https://192.168.56.101:8443/cas/v1/tickets/

会得到一个响应:

HTTP/1.1 201 Created
Date: Tue, 28 Jun 2016 08:03:23 GMT
Location: https://192.168.56.101:8443/cas/v1/tickets/TGT-3-MIipUxjOlXiXU1Uuj0vZncjZcfeIJFKhJwegBuHDL03kfCV5ME-cas01.example.org
Accept-Ranges: bytes
Server: Noelios-Restlet-Engine/1.1.6
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 448

把这个响应里的location字段后面的拷贝一下,这是第二步要访问的rest接口的url

curl -i -k -X  POST -d "service=http%3A%2F%2F192.168.56.101%2Fomw%2Fdo%2Fmain%2Findex" https://192.168.56.101:8443/cas/v1/tickets/TGT-3-MIipUxjOlXiXU1Uuj0vZncjZcfeIJFKhJwegBuHDL03kfCV5ME-cas01.example.org

第二步的响应就是ticket

ST-2-AHrFkuIyZBarRPGHsbaZ-cas01.example.org

最后带上这个ticket访问上面service的地址,就是已经登录的状态
http://192.168.56.101/omw/do/main/index?ticket=ST-2-AHrFkuIyZBarRPGHsbaZ-cas01.example.org

curl里第二步的时候注意一下,这个url要进行编码。



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
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. 添加数据源

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值