CAS6.0认证服务器-接口使用手册-V3.0.doc_第1页
CAS6.0认证服务器-接口使用手册-V3.0.doc_第2页
CAS6.0认证服务器-接口使用手册-V3.0.doc_第3页
CAS6.0认证服务器-接口使用手册-V3.0.doc_第4页
CAS6.0认证服务器-接口使用手册-V3.0.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京信城通数码科技有限公司密级:普通秘密机密绝密CAS6.0认证服务器接口使用手册(C)2006-2007北京信城通数码科技有限公司版权所有版本历史版本号生效日期版本说明/变更理由/变更内容作者备注V1.02007-5-17建立霍云V2.02007-5-30修改霍云V3.02007-9-23修改整合霍云变更说明:C:Create,初始创建;A:Add,增加内容;M:Mod,修改;D:Del,删除 北京信城通:北京市南四环西路188号总部基地七区15号楼 邮编100070 电话传真海信城通:上海市福州路666号金陵海欣大厦7楼d座 邮编200001 电话传真州信城通:广州市天河北路586号帝景商业中心601室 邮编510630 电话传真圳信城通:深圳市福田区天安数码时代大厦主楼1210室 邮编518048 电话传真录1前言51.1公司简介52J2EE接口52.1接口介绍52.2接口安装62.2.1Casproxy.jar62.2.2加载服务器组件到应用系统中Web.xml拷贝配置文件拷贝运行文件pertiescaslog.xml92.3接口说明112.3.1函数说明类 AuthBroker接口 AuthBrokerIF122.3.2使用示例153C接口193.1接口介绍193.2安装说明193.2.1解压缩193.2.2config说明casserver.configcasclient.config223.2.3配置环境223.3C接口说明233.3.1创建代理233.3.2注销代理233.3.3证书用户登录233.3.4证书用户登出243.3.5口令用户登录243.3.6口令用户登出243.3.7用户令牌校验243.3.8用户令牌校验并取用户属性(接口1)253.3.9用户令牌校验并取用户属性(接口2)253.3.10用户令牌比较263.4调用说明263.5返回值代码274CAS for CIQ接口(C接口和PowerBuilder接口)274.1接口介绍274.2接口安装274.2.1解压缩274.2.2config说明284.2.3配置环境304.2.4安装成功测试304.3接口说明324.3.1函数说明3C接口说明3PowerBuilder调用说明334.3.2返回码定义345技术支持及售后服务35CAS6.0认证服务器-接口使用手册-V2.0 第 4 页 共 35 页1 前言1.1 公司简介北京信城通数码科技有限公司(以下简称信城通)是2001年8月在北京中关村科技园区丰台园注册成立的高新技术企业,是经信息产业部批准的跨地区增值电信业务服务商。信城通的业务主要涉及电子数据交换服务、在线数据处理服务、在线交易处理服务、网络信息技术服务、信息安全服务、产品及应用软件研发等领域。公司80以上的员工拥有本科及以上学历,同时拥有多位业内顶级技术专家与资深业务骨干。凭借良好的人才优势、强大的技术实力与专业的服务队伍,为各级检验检疫机构及广大进出口企业用户提供优质的产品和服务,并成为联接二者的优秀桥梁。经信息产业部电信管理部门审核批准,公司获得了中华人民共和国电信与信息服务经营许可证(京ICP 证010524)。2001年9月20日取得中关村科技园丰台园高新技术企业证书(证书号:0121618F)。2005年8月18日,信城通通过ISO9001:2000标准质量管理体系认证,并已经正式启动CMMI的认证进程。北京信城通数码科技现有员工150多人,全部为大专以上学历,其中硕士占7%,本科占70%,大专占23%。高级管理人员14%,技术人员62%,一般管理人员24%。 2005年11月28日,信城通正式入住位于中关村科技园区丰台园总部基地的新办公楼,它是信城通自成立以来快速发展的标志,也是信城通今后长期稳定发展的坚实基础。信城通将始终秉承以用户为中心、以市场为导向、以服务为基础、以技术为后盾、以创新求发展、以诚信立长久的企业宗旨,脚踏实地,开拓进取,持续不断地为广大用户提供优质的产品和服务。2 J2EE接口2.1 接口介绍本手册介绍了CAS6.0认证服务器的门户接口函数。这部分接口函数实现了两类功能:用户的标识校验和取证书的相关信息。本接口主要用于应用程序和CAS的整合,通过调用本接口,应用程序使用CAS提供的认证服务。本接口适用于Java形式的应用程序。2.2 接口安装2.2.1 Casproxy.jar本接口目前封装在casproxy.jar中。应用程序使用时,取得casproxy.jar文件,放入相应目录中,并在应用程序的工程中加入相应的路径。2.2.2 加载服务器组件到应用系统中 Web.xml确定有效的web.xml,本文件位置在应用的WEB-INF目录下。(1)如果Servlet的版本为2.3,则需要增加: p.ice.ApplicationListener 和 ProxyManagerServlet ProxyManagerServlet p.server.ProxyManagerServlet progname proxycomp configFile /WEB-INF/casconf/perties configLog4j /WEB-INF/casconf/caslog.xml 1 到合适的位置,(2)如果Servlet的版本为2.2,则需要增加: ProxyManagerServlet ProxyManagerServlet p.server.ProxyManagerServlet progname proxycomp configFile /WEB-INF/casconf/perties configLog4j /WEB-INF/casconf/caslog.xml 1 到合适的位置,说明:因Servlet规范2.2不支持listener,所以不需要配置。 拷贝配置文件在WEB-INF目录下建立新目录casconf,把配置文件(perties和caslog.xml)拷贝到casconf下,完成后的结构如下:图2.2-1 casconf 拷贝运行文件把相应的jar文件:(commons-codec-1.3.jar、commons-collections.jar、commons-pool-1.2.jar、log4j-1.2.13.jar、ice.jar)拷贝到WEB-INF/lib目录下,这些Java库文件文件可以从产品光盘上取得或从网上下载,完成后的目录内容如下:图2.2-2 lib perties它包含以下内容,以开头表示是注释,名称值说明Ice.Warn.Connections0显示连接警告信息,缺省为0Ice.ACM.Client0客户端活动Socket连接空闲存活时间,超过此时间,连接将被关闭。缺省为0,表示禁止此功能。Ice.Trace.Network0不跟踪1跟踪连接建立和关闭2类似1,但更详细一些3类似2,但跟踪数据网络跟踪选项Ice.ThreadPerConnection1每个连接关联的线程数,在TCP连接条件下,一个socket连接可以有多个线程,但在SSL环境下只能设置为1(JSSE的限制),Ice.Plugin.IceSSLIceSSL.PluginFactory在使用SSL连接条件下,必须包含此插件。IceSSL.Trace.Security0不跟踪,缺省值1跟踪少量信息2比较详细SSL连接的跟踪信息。IceSSL.Client.CiphersNONE (RSA) !(EXPORT) !(NULL)SSL协商时,支持的密码算法。IceSSL.Client.KeystoreF:/reports/certs/client.jks证书和私钥库,java的KeyStore格式。IceSSL.Client.KeystorePasswordchangeit密钥库的密码,IceSSL.Client.CertsF:/reports/certs/cacerts.jks可信任的证书库IceSSL.Client.CertsPasswordpassword证书库的密码Cas.ConnectionPool.max.active10连接到CAS的最大Socket连接数,缺省是20个。Cas.ConnectionPool.wait.time5从Socket连接池中获得一个连接的等待最长时间,超过这个时间,将返回错误。Cas.Application.Login.Identitysso-portal应用系统在CAS服务器中注册的应用系统标识。Cas.Application.Login.Passwordsso-password应用系统在CAS服务器中注册的应用系统标识对应的口令。Cas.CasServer.Endpointstcp -h 4 -p 10000CAS服务器的地址和端口号,仅支持IPV4,tcp表示是TCP协议,ssl表示是SSL协议,-h指定CAS服务器的地址,-p指定CAS服务器的端口号。表2.1-1 perties caslog.xml日志支持5个级别,级别越高,记录的信息越详细。级别值说明1fatal严重级别,2error错误3warn警告(生产环境下设置级别)4info信息(调试状态)5debug调试(调试状态)表2.1-2 caslog.xml配置文件为xml格式,缺省条件下,日志输出到系统标准输出中,要修改的只是日志级别,见红色部分。.1 缺省配置 .2 输出到文件配置 说明:1 在中要指定日志文件的绝对路径,替换红色部分即可。2 在中指定日志级别,替换红色部分即可。3 注意,和中蓝色部分名称要一致。2.3 接口说明2.3.1 函数说明 类 AuthBrokerjava.lang.Object cn.itownet.sdk.cas.AuthBroker所有已实现的接口: AuthBrokerIF方法摘要static AuthBrokerIFloginCheck(HttpServletRequest request, HttpServletResponse response) 验证用户登录令牌,如果没有发现令牌,则重定向到门户进行登录, 登录成功后,再重新返回到本接口。static AuthBrokerIFtokenCheck(HttpServletRequest request, HttpServletResponse response) 验证目前已经登录用户的令牌是否继续有效,当用户重新登录后,前次登录令牌将失效。表3.1-.1 loginCheckpublic static final AuthBrokerIF loginCheck(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception验证用户登录令牌,如果没有发现令牌,则重定向到门户进行登录, 登录成功后,再重新返回到本接口。参数: request - http请求对象 response - http响应对象 返回: 如果验证成功,返回AuthBrokerIF实例,可以取相应的属性。 如果为null,表示需要进行重定向,调用者只需返回即可。 Exception,表示验证错误,不需要继续处理。 抛出: java.lang.Exception.2 tokenCheckpublic static final AuthBrokerIF tokenCheck(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception验证目前已经登录用户的令牌是否继续有效,当用户重新登录后,前次登录令牌将失效。 参数: request - http请求对象 response - http响应对象 返回: 如果验证成功,返回AuthBrokerIF实例,可以取相应的属性。 Exception,表示验证错误,说明本令牌已经失效,或没有找到令牌,可以进行错误处理。 抛出: java.lang.Exception 接口 AuthBrokerIF所有已知实现类: AuthBroker public interface AuthBrokerIF方法摘要 java.lang.StringgetC() get subjects country java.lang.StringgetCN() get subjects commonName java.lang.StringgetDN() get subjects DN java.lang.StringgetEntityID() get subjects entityID java.lang.StringgetL() get subjects locality java.lang.StringgetO() get subjects orgnization java.util.VectorgetOs() get subjects orgnizations java.lang.StringgetOU() get subjects orgnizationUnit java.util.VectorgetOUs() get subjects orgnizationUnits java.lang.StringgetSN() get certificates serialNumber java.lang.StringgetSN0() 已过时。 java.lang.StringgetST() get subjects stateOrProvince表3.1-.1 getCjava.lang.String getC()get subjects country 返回: country code.2 getSTjava.lang.String getST()get subjects stateOrProvince 返回: stateOrProvince.3 getLjava.lang.String getL()get subjects locality 返回: city.4 getOjava.lang.String getO()get subjects orgnization 返回: orgnization.5 getOsjava.util.Vector getOs()get subjects orgnizations 返回: all orgnizations.6 getOUjava.lang.String getOU()get subjects orgnizationUnit 返回: orgnizationUnit.7 getOUsjava.util.Vector getOUs()get subjects orgnizationUnits 返回: all orgnizationUnits.8 getCNjava.lang.String getCN()get subjects commonName 返回: common name.9 getDNjava.lang.String getDN()get subjects DN 返回: distinguish name.10 getSN0java.lang.String getSN0()已过时。 Warning, deprecated, please use getEntiryID 返回: entity id.11 getSNjava.lang.String getSN()get certificates serialNumber 返回: cert serial number.12 getEntityIDjava.lang.String getEntityID()get subjects entityID 返回: entity id2.3.2 使用示例import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/* * Servlet implementation class for Servlet: RedirectTestServlet * * web.servlet name=RedirectTestServlet display-name=RedirectTestServlet * * web.servlet-mapping url-pattern=/RedirectTestServlet * */public class RedirectTestServlet extends javax.servlet.http.HttpServletimplements javax.servlet.Servlet /* * (non-Java-doc) * * see javax.servlet.http.HttpServlet#HttpServlet() */public RedirectTestServlet() super();/* * (non-Java-doc) * * see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, * HttpServletResponse response) */protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException try AuthBrokerIF abi = AuthBroker.loginCheck(request, response);if (abi = null)return;response.setContentType(text/html; charset=GBK);PrintWriter out = null;try out = response.getWriter();out.println(+ show-token-data); catch (Exception e) e.printStackTrace();return;/ verify infoout.append();out.append(用户实体标识1-EID + abi.getEntityID()+ );out.append(用户实体标识2-SN0 + abi.getSN0() + );out.append(用户序列号SN + abi.getSN() + );out.append(DN + abi.getDN() + );out.append(国家信息C值 + abi.getC() + );out.append(通用名称CN值 + abi.getCN() + );out.append(用户地区L值 + abi.getL() + );out.append(用户组织O值 + abi.getO() + );out.append(用户组织OU值 + abi.getOU() + );out.append(用户ST值 + abi.getST() + );out.append();out.println();out.close(); catch (Exception e) e.printStackTrace();/* * (non-Java-doc) * * see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, * HttpServletResponse response) */protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException try AuthBrokerIF abi = AuthBroker.tokenCheck(request, response);response.setContentType(text/html; charset=GBK);PrintWriter out = null;try out = response.getWriter();out.println(+ show-token-data); catch (Exception e) e.printStackTrace();return;/ verify infoout.append();out.append(用户实体标识1-EID + abi.getEntityID()+ );out.append(用户实体标识2-SN0 + abi.getSN0() + );out.append(用户序列号SN + abi.getSN() + );out.append(DN + abi.getDN() + );out.append(国家信息C值 + abi.getC() + );out.append(通用名称CN值 + abi.getCN() + );out.append(用户地区L值 + abi.getL() + );out.append(用户组织O值 + abi.getO() + );out.append(用户组织OU值 + abi.getOU() + );out.append(用户ST值 + abi.getST() + );out.append();out.println();out.close(); catch (Exception e) e.printStackTrace();3 C接口3.1 接口介绍本手册介绍了CAS6.0认证服务器的门户接口函数。这部分接口函数实现了两类功能:用户的标识校验和取证书的相关信息。本接口主要用于应用程序和CAS的整合,通过调用本接口,应用程序使用CAS提供的认证服务。本接口适用于C语言的应用程序。3.2 安装说明3.2.1 解压缩Linux下安装时,先取得接口Linux版压缩包aspicas.tar.gz,然后用tar命令把aspicas.tar.gz解压缩到一个路径中。压缩包展开后的内容如下:其中:目录说明casservertest本目录中包含一个简单的cas测试服务器,casservertest。其中casserver.config为测试服务器的配置文件,各项解释见2.2节如当前路径在casservertest目录,服务器运行使用命令:./casservertest Ice.Config=casserver.configconfig客户端的配置文件,casclient.config,各项解释见2.2节includeCAS aspi C接口的头文件,aspicas6.hlibCAS aspi C接口本身的库文件为libaspicas_c.so.6.1.0其它的都是接口依赖的库文件对于Windows版的接口安装,请先取得Windows版接口压缩包aspicas.zip,然后把压缩包解压得如Linux版类似的目录结构和内容:其中lib目录下的aspicas6c.dll是接口的动态库,其它是接口依赖的库文件3.2.2 config说明 casserver.config它的内容如下:CasServer.Host = tcp -h -p 10001CasServer.AppProperty.1 = CasServer.AppProperty.2 = 12345678CasServer.Region = 10App.id = smtpApp.pwd = 1234U = user1User.pwd = 5678它们的含义如下:l CasServer.Host,指定casserver.exe监听的地址和端口号,格式为“tcp -h 地址 -p 端口号”,如果省略“-h 地址”,则在本地所有的地址上监听。l CasServer.AppProperty.1,CasServer.AppProperty.2,指定CAS服务器返回的应用属性,目前接口中未返回应用属性l CasServer.Region,CAS服务器地区号,范围为1255,用户的地区号必须和CAS的地区号一致。l App.id,应用的idl App.pwd,应用的口令l U,用户的idl User.pwd, 用户的口令 casclient.config它的内容如下:Ice.RetryIntervals = 0 100Ice.ACM.Client =30Ice.Override.ConnectTimeout =30CasClient.Appid = smtpCasClient.Pwd = 1234CasClient.HostPort = 05:10001CasClient.UserRegion = 10#CasClient.GetProperty.1 = mailbox#CAsClient.GetProperty.2 = mailboxpwd它们的含义如下:l Ice.RetryIntervals,代理无法连接服务时的重试间隔,0 100表示失败时立即重试,再次失败时过100(毫秒)再次重试l Ice.ACM.Client,用户连接停止活动一段时间(秒)后断开l Ice.Override.ConnectTimeout,客户端连接超时时间(秒)l CasC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论