我是靠谱客的博主 魔幻小甜瓜,最近开发中收集的这篇文章主要介绍CAS接口文档,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SSO接口文档

注释:CASCentral  Authentication Service

备注:其中的浅兰色的文件,可以在SVN的“/工作管理/SSO相关文件“路径下可以找到。

一、      tomcatconf/server.xml文件中加入SSL协议,配制代码如下:

<Connector protocol="org.apache.coyote.http11.Http11Protocol"

  port="8443" minSpareThreads="5" maxSpareThreads="75"

  enableLookups="true" disableUploadTimeout="true"

  acceptCount="100"  maxThreads="200" 

scheme="https" secure="true" SSLEnabled="true" 

  keystoreFile="conf/.keystore" keystorePass="changeit" 

truststoreFile="/urs/java/jdk1.6.0_23/jre/lib/security/cacerts"

clientAuth="false" sslProtocol="TLS"/>

 

说明:红色部分设置为当前服务器的JDK路径。(如果是使用公司统一配制好的tomcat则不用修改)

 

二、      替换https加密协议证书的相关文件(请先备份原有的文件):

1.   当在公司服务器上布署时,可以使用ant脚本replaceAll.xml添加.keystore和替换cacerts这两个文件:

l  首先要将上面的两个文件放到当前要打包的应用系统的工程中,例如:

WEB-INF/目录下的ext文件夹下。

l  然后使用ant脚本deploy_create.xml将以上两个文件打入zip包中,脚本代码片断如下:

<target name=”copyDeploy”depends=”init”>

    <echo>拷贝执行部署需要的ant脚本</echo>

    <copy todir=”${rarDest}${DSTAMP}${TSTAMP}”>

    <fileset dir=”../../WebContent/WEB-INF/ext”>

        <include name=”*”/>

</fileset>

</copy>

</target>

l  在服务器的usr/local/tomcat/conf路径下添加.keystore文件

l  在服务器的usr/java/jdk1.6.0_23/jre/lib/security路径下替换“cacerts”文件

 

2.   如果是自己本机上的应用系统要与单点登录联调,可以手工添加本机tomcat路径的conf目录下的“.keystore”和替换本机jdk路径下“jre/lib/security”目录下的“cacerts”文件

 

三、      将单点登录应用端的相关jar包拷到应用系统的lib文件夹中,单点登录相关jar包文件名如下(如果系统中已经有的jar包不用添加):

casclient.jar (应用系统端单点登录核心jar)

commons-logging-api.jar

junit.jar

mockrunner.jar

servlet.jar

 

四、      在应用系统工程的web.xml文件中加入单点登录过滤器,配制代码如下:

<filter>

    <!--  单点登录过滤器 -- >

<filter-name>CASFilter</filter-name>         <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>

<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>

<!-- 重定向单点登录的登录页面。 ssoi.uyunke.com:8443是单点登录的域名和端口号 -- >

<param-value>https://ssoi.uyunke.com:8443/cas/login</param-value>

   </init-param>

   <init-param>      <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>

<!--重定向单点登录的校验  -- >

<param-value>https://ssoi.uyunke.com:8443/cas/proxyValidate</param-value>

</init-param>

<init-param>                 <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>

<!--应用端的主机名和端口号。需要改为当前应用系统的域名和端口号。-- >

<param-value>ls:8080</param-value>

</init-param>

<init-param>                 <param-name>edu.yale.its.tp.cas.client.filter.wrapRequest</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<!--这里是配制应用端要过滤的路径-- >

<filter-mapping>

<filter-name>CASFilter</filter-name>        <url-pattern>/*</url-pattern>

</filter-mapping>

关于不通过单点登录过滤器的说明:

l  这与要过滤路径的配制有关,所以只需要将要过滤的东西放在一个路径下;而那些不需要的过滤的东西放在另一个路径下。这样在配制过滤路径时只配制上要过滤的路径就可以了,如只过滤html路径下的文件:/html/*

l  过滤路径不支持通配符加后缀名的格式如:/html/*.jsp

l  配制的过滤路径不能与其它过滤器的过滤路径相同,否则会产生冲突。

l  CAS过滤器只会过滤页面,所以要创建struts2的拦截器,拦截直接访问ActionURL(*.action),如果usrId为空则转向登录应用系统的ssologin.jsp页面(拦截器的文件名为“IsLoginInterceptor.java”)

 

五、      当用户正确登录后会转向用户登录的Action,当在Action中要取得当前正确登录单点登录的用户ID时,通过如下代码取得userId

l  第一种方法:

session.getAttribute("edu.yale.its.tp.cas.client.filter.user");

 

l  第二种方法:

import edu.yale.its.tp.cas.client.filter.CASFilter;

session.getAttribute(CASFilter.CAS_FILTER_USER);

备注:上面两种方法会得到一个Object类型的userId,可以强制转换成String类型

 

六、      应用系统将原有的登录页面改为单点登录页面的改造如下:

l  将原有的jsp登录页面改为:只作转向登录数据处理的Action中的方法。如:“ssologin.jsp”,其中“window.location.href=”后面改为自己登录数据处理的Action路径。

 

七、      当应用系统需要设置用户登出的超链接时:

1.   因为使用的是CAS应用系统端的自定义标签,所以首先要把cas.tld文件复制到应用系统的WEB-INF目录下,在web.xml中注册cas.tld文件代码如下:

<jsp-config>

    <taglib>

        <taglib-uri>cas</taglib-uri>

        <taglib-location>/WEB-INF/cas.tld</taglib-location>

    </taglib>

</jsp-config>

说明:红色部分修改为WEB-INF目录下存放cas.tld文件的目录。

2.   logout.jsp文件拷到当前应用系统的工程中(这个jsp页面可以不用通过CAS过滤器),关键代码如下:

例子:<cas:logout

           var="edu.yale.its.tp.cas.client.filter.user"

           logoutUrl="https://ssoi.uyunke.com:8443/cas/logout?service=http://my.app.com:8080/testssob/html/test2.jsp"

          scope="session"/>

代码说明:

l  其中红色部分修改为登录当前应用系统的jspURL路径;

3.   在要加入登出的地方加入如下代码:

<a href="<eaglelink:contextpath/>/html/logout.jsp">登出</a>

代码说明:

l  <eaglelink:contextpath/>是上下文路径

l  红色部分为上面创建的logout.jsp页面的路径

 

八、      关于任一应用系统与单点登录联调时的域名的配制,分为两种情况:

1.   本机应用系统与任意一台机器上布署单点登录服务联调时的配制:

l  配制单点登录服务和当前调试应用系统的域名与IP的映射(因为单点登录所有的配制都是通过域名来访问的),在“C:WindowsSystem32driversetc“目录下的hosts文件中配制域名与IP的对应关系,例如:

192.168.118.88     ssoi.uyunke.com    ß单点登录域名

127.0.0.1          my.app.com         ß当前要联调的应用系统域名(根据自己应用系统的域名修改),127.0.0.1”这个是默认本机的IP,也可以使用本地网络联接属性中设置的IP

2.   本机应用系统与公司服务器上布署的单点登录服务联调的配制:

l  因为服务器上的单点登录服务域名已经配制好了,所以只需要配制本机要联调应用系统的域名,在“C:WindowsSystem32driversetc”目录下的hosts文件中配制应用系统域名与本机IP的对应关系,例如:

127.0.0.1       my.app.com         ß当前要联调的应用系统域名(根据自己的应用系统的域名修改)

 

最后

以上就是魔幻小甜瓜为你收集整理的CAS接口文档的全部内容,希望文章能够帮你解决CAS接口文档所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部