CAS认证服务器接口使用基础手册V.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAS 认证 服务器 接口 使用 基础 手册
- 资源描述:
-
密级:一般秘密机密绝密 CAS6.0认证服务器接口使用手册 (C)-北京信城通数码科技版权全部 版本历史 版本号 生效日期 版本说明/变更理由/变更内容 作者 备注 V1.0 -5-17 建立 霍云 V2.0 -5-30 修改 霍云 V3.0 -9-23 修改整合 霍云 变更说明:C:Create,初始创建;A:Add,增加内容;M:Mod,修改;D:Del,删除 目录 1 序言 5 1.1 企业介绍 5 2 J2EE接口 5 2.1 接口介绍 5 2.2 接口安装 6 2.2.1 Casproxy.jar 6 2.2.2 加载服务器组件到应用系统中 6 2.2.2.1 Web.xml 6 2.2.2.2 拷贝配置文件 7 2.2.2.3 拷贝运行文件 8 2.2.2.4 cas.properties 8 2.2.2.5 caslog.xml 9 2.3 接口说明 11 2.3.1 函数说明 11 2.3.1.1 类 AuthBroker 11 2.3.1.2 接口 AuthBrokerIF 12 2.3.2 使用示例 15 3 C接口 19 3.1 接口介绍 19 3.2 安装说明 19 3.2.1 解压缩 19 3.2.2 config说明 21 3.2.2.1 casserver.config 21 3.2.2.2 casclient.config 22 3.2.3 配置环境 22 3.3 C接口说明 23 3.3.1 创建代理 23 3.3.2 注销代理 23 3.3.3 证书用户登录 23 3.3.4 证书用户登出 24 3.3.5 口令用户登录 24 3.3.6 口令用户登出 24 3.3.7 用户令牌校验 24 3.3.8 用户令牌校验并取用户属性(接口1) 25 3.3.9 用户令牌校验并取用户属性(接口2) 25 3.3.10 用户令牌比较 26 3.4 调用说明 26 3.5 返回值代码 27 4 CAS for CIQ接口(C接口和PowerBuilder接口) 27 4.1 接口介绍 27 4.2 接口安装 27 4.2.1 解压缩 27 4.2.2 config说明 28 4.2.3 配置环境 30 4.2.4 安装成功测试 30 4.3 接口说明 32 4.3.1 函数说明 32 4.3.1.1 C接口说明 32 4.3.1.2 PowerBuilder调用说明 33 4.3.2 返回码定义 34 5 技术支持及售后服务 35 1 序言 1.1 企业介绍 北京信城通数码科技(以下简称信城通)是8月在北京中关村科技园区丰台园注册成立高新技术企业,是经信息产业部同意跨地域增值电信业务服务商。 信城通业务关键包含电子数据交换服务、在线数据处理服务、在线交易处理服务、网络信息技术服务、信息安全服务、产品及应用软件研发等领域。企业80%以上职员拥有本科及以上学历,同时拥有多位业内顶级技术教授和资深业务骨干。凭借良好人才优势、强大技术实力和专业服务队伍,为各级检验检疫机构及广大进出口企业用户提供优质产品和服务,并成为联接二者优异桥梁。 经信息产业部电信管理部门审核同意,企业取得了《中国电信和信息服务经营许可证》(京ICP 证010524)。9月20日取得《中关村科技园丰台园高新技术企业证书》(证书号:0121618F)。8月18日,信城通经过ISO9001:标准质量管理体系认证,并已经正式开启CMMI认证进程。 北京信城通数码科技现有职员150多人,全部为大专以上学历,其中硕士占7%,本科占70%,大专占23%。高级管理人员14%,技术人员62%,通常管理人员24%。 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 加载服务器组件到应用系统中 2.2.2.1 Web.xml 确定有效web.xml,本文件位置在应用WEB-INF目录下。 (1)假如Servlet版本为2.3,则需要增加: <listener> <listener-class>p.ice.ApplicationListener</listener-class> </listener> 和 <servlet> <servlet-name>ProxyManagerServlet</servlet-name> <display-name>ProxyManagerServlet</display-name> <description><![CDATA[this is a ice servlet]]></description> <servlet-class>p.server.ProxyManagerServlet</servlet-class> <init-param> <param-name>progname</param-name> <param-value>proxycomp</param-value> </init-param> <init-param> <param-name>configFile</param-name> <param-value>/WEB-INF/casconf/cas.properties</param-value> </init-param> <init-param> <param-name>configLog4j</param-name> <param-value>/WEB-INF/casconf/caslog.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 到适宜位置, (2)假如Servlet版本为2.2,则需要增加: <servlet> <servlet-name>ProxyManagerServlet</servlet-name> <display-name>ProxyManagerServlet</display-name> <description><![CDATA[this is a ice servlet]]></description> <servlet-class>p.server.ProxyManagerServlet</servlet-class> <init-param> <param-name>progname</param-name> <param-value>proxycomp</param-value> </init-param> <init-param> <param-name>configFile</param-name> <param-value>/WEB-INF/casconf/cas.properties</param-value> </init-param> <init-param> <param-name>configLog4j</param-name> <param-value>/WEB-INF/casconf/caslog.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 到适宜位置, 说明: 因Servlet规范2.2不支持listener,所以不需要配置<listener>。 2.2.2.2 拷贝配置文件 在WEB-INF目录下建立新目录casconf,把配置文件(cas.properties和caslog.xml)拷贝到casconf下,完成后结构以下: 图2.2-1 casconf 2.2.2.3 拷贝运行文件 把对应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 2.2.2.4 cas.properties 它包含以下内容,以#开头表示是注释, 名称 值 说明 Ice.Warn.Connections 0 显示连接警告信息,缺省为0 Ice.ACM.Client 0 用户端活动Socket连接空闲存活时间,超出此时间,连接将被关闭。缺省为0,表示严禁此功效。 Ice.Trace.Network 0-不跟踪 1-跟踪连接建立和关闭 2-类似1,但更具体部分 3-类似2,但跟踪数据 网络跟踪选项 Ice.ThreadPerConnection 1 每个连接关联线程数,在TCP连接条件下,一个socket连接能够有多个线程,但在SSL环境下只能设置为1(JSSE限制), Ice.Plugin.IceSSL IceSSL.PluginFactory 在使用SSL连接条件下,必需包含此插件。 IceSSL.Trace.Security 0-不跟踪,缺省值 1-跟踪少许信息 2-比较具体 SSL连接跟踪信息。 IceSSL.Client.Ciphers NONE (RSA) !(EXPORT) !(NULL) SSL协商时,支持密码算法。 IceSSL.Client.Keystore F:/reports/certs/client.jks 证书和私钥库,javaKeyStore格式。 IceSSL.Client.KeystorePassword changeit 密钥库密码, IceSSL.Client.Certs F:/reports/certs/cacerts.jks 可信任证书库 IceSSL.Client.CertsPassword password 证书库密码 Cas.ConnectionPool.max.active 10 连接到CAS最大Socket连接数,缺省是20个。 Cas.ConnectionPool.wait.time 5 从Socket连接池中取得一个连接等候最长时间,超出这个时间,将返回错误。 Cas.Application.Login.Identity sso-portal 应用系统在CAS服务器中注册应用系统标识。 Cas.Application.Login.Password sso-password 应用系统在CAS服务器中注册应用系统标识对应口令。 Cas.CasServer.Endpoints tcp -h 10.98.157.34 -p 10000 CAS服务器地址和端口号,仅支持IPV4,tcp表示是TCP协议,ssl表示是SSL协议,-h指定CAS服务器地址,-p指定CAS服务器端口号。 表2.1-1 cas.properties 2.2.2.5 caslog.xml 日志支持5个等级,等级越高,统计信息越具体。 等级 值 说明 1 fatal 严重等级, 2 error 错误 3 warn 警告(生产环境下设置等级) 4 info 信息(调试状态) 5 debug 调试(调试状态) 表2.1-2 caslog.xml 配置文件为xml格式,缺省条件下,日志输出到系统标准输出中,要修改只是日志等级,见红色部分。 2.2.2.5.1 缺省配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j=""> <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%5p [%t] (%F:%L) - %m%n"/> </layout> </appender> <root> <priority value="info"/> <appender-ref ref="stdout" /> </root> </log4j:configuration> 2.2.2.5.2 输出到文件配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j=""> <appender name="rollfile" class="org.apache.log4j.RollingFileAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%5p [%t] (%F:%L) - %m%n"/> </layout> <param name="File" value="example.log" /> <param name="Append" value="true" /> <param name="MaxFileSize" value="100KB" /> <param name="MaxBackupIndex" value="1" /> </appender> <root> <priority value="info"/> <appender-ref ref=" rollfile" /> </root> </log4j:configuration> 说明: 1. 在<param name="File" value="example.log" />中要指定日志文件绝对路径,替换红色部分即可。 2. 在<priority value="info"/>中指定日志等级,替换红色部分即可。 3. 注意,<appender name="rollfile" class="org.apache.log4j.RollingFileAppender">和<appender-ref ref=" rollfile" />中蓝色部分名称要一致。 2.3 接口说明 2.3.1 函数说明 2.3.1.1 类 AuthBroker java.lang.Object cn.itownet.sdk.cas.AuthBroker 全部已实现接口: AuthBrokerIF 方法摘要 static AuthBrokerIF loginCheck(HttpServletRequest request, HttpServletResponse response) 验证用户登录令牌,假如没有发觉令牌,则重定向到门户进行登录, 登录成功后,再重新返回到本接口。 static AuthBrokerIF tokenCheck(HttpServletRequest request, HttpServletResponse response) 验证现在已经登录用户令牌是否继续有效,当用户重新登录后,前次登录令牌将失效。 表3.1-1 2.3.1.1.1 loginCheck public static final AuthBrokerIF loginCheck(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception 验证用户登录令牌,假如没有发觉令牌,则重定向到门户进行登录, 登录成功后,再重新返回到本接口。 参数: request - http请求对象 response - http响应对象 返回: -假如验证成功,返回AuthBrokerIF实例,能够取对应属性。 -假如为null,表示需要进行重定向,调用者只需返回即可。 -Exception,表示验证错误,不需要继续处理。 抛出: java.lang.Exception 2.3.1.1.2 tokenCheck public static final AuthBrokerIF tokenCheck(HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception 验证现在已经登录用户令牌是否继续有效,当用户重新登录后,前次登录令牌将失效。 参数: request - http请求对象 response - http响应对象 返回: -假如验证成功,返回AuthBrokerIF实例,能够取对应属性。 -Exception,表示验证错误,说明本令牌已经失效,或没有找到令牌,能够进行错误处理。 抛出: java.lang.Exception 2.3.1.2 接口 AuthBrokerIF 全部已知实现类: AuthBroker public interface AuthBrokerIF 方法摘要 java.lang.String getC() get subject's country java.lang.String getCN() get subject's commonName java.lang.String getDN() get subject's DN java.lang.String getEntityID() get subject's entityID java.lang.String getL() get subject's locality java.lang.String getO() get subject's orgnization java.util.Vector getOs() get subject's orgnizations java.lang.String getOU() get subject's orgnizationUnit java.util.Vector getOUs() get subject's orgnizationUnits java.lang.String getSN() get certificate's serialNumber java.lang.String getSN0() 已过时。 java.lang.String getST() get subject's stateOrProvince 表3.1-2 2.3.1.2.1 getC java.lang.String getC() get subject's country 返回: country code 2.3.1.2.2 getST java.lang.String getST() get subject's stateOrProvince 返回: stateOrProvince 2.3.1.2.3 getL java.lang.String getL() get subject's locality 返回: city 2.3.1.2.4 getO java.lang.String getO() get subject's orgnization 返回: orgnization 2.3.1.2.5 getOs java.util.Vector getOs() get subject's orgnizations 返回: all orgnizations 2.3.1.2.6 getOU java.lang.String getOU() get subject's orgnizationUnit 返回: orgnizationUnit 2.3.1.2.7 getOUs java.util.Vector getOUs() get subject's orgnizationUnits 返回: all orgnizationUnits 2.3.1.2.8 getCN java.lang.String getCN() get subject's commonName 返回: common name 2.3.1.2.9 getDN java.lang.String getDN() get subject's DN 返回: distinguish name 2.3.1.2.10 getSN0 java.lang.String getSN0() 已过时。 Warning, deprecated, please use getEntiryID 返回: entity id 2.3.1.2.11 getSN java.lang.String getSN() get certificate's serialNumber 返回: cert serial number 2.3.1.2.12 getEntityID java.lang.String getEntityID() get subject's entityID 返回: entity id 2.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.HttpServlet implements 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("<html><head><title>" + "show-token-data</title></head><body>"); } catch (Exception e) { e.printStackTrace(); return; } // verify info out.append("<br><table>"); out.append("<tr><td>用户实体标识1-EID</td><td>" + abi.getEntityID() + "</td></tr>"); out.append("<tr><td>用户实体标识2-SN0</td><td>" + abi.getSN0() + "</td></tr>"); out.append("<tr><td>用户序列号SN</td><td>" + abi.getSN() + "</td></tr>"); out.append("<tr><td>DN</td><td>" + abi.getDN() + "</td></tr>"); out.append("<tr><td>国家信息C值</td><td>" + abi.getC() + "</td></tr>"); out.append("<tr><td>通用名称CN值</td><td>" + abi.getCN() + "</td></tr>"); out.append("<tr><td>用户地域L值</td><td>" + abi.getL() + "</td></tr>"); out.append("<tr><td>用户组织O值</td><td>" + abi.getO() + "</td></tr>"); out.append("<tr><td>用户组织OU值</td><td>" + abi.getOU() + "</td></tr>"); out.append("<tr><td>用户ST值</td><td>" + abi.getST() + "</td></tr>"); out.append("</table><br>"); out.println("</body></html>"); 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("<html><head><title>" + "show-token-data</title></head><body>"); } catch (Exception e) { e.printStackTrace(); return; } // verify info out.append("<br><table>"); out.append("<tr><td>用户实体标识1-EID</td><td>" + abi.getEntityID() + "</td></tr>"); out.append("<tr><td>用户实体标识2-SN0</td><td>" + abi.getSN0() + "</td></tr>"); out.append("<tr><td>用户序列号SN</td><td>" + abi.getSN() + "</td></tr>"); out.append("<tr><td>DN</td><td>" + abi.getDN() + "</td></tr>"); out.append("<tr><td>国家信息C值</td><td>" + abi.getC() + "</td></tr>"); out.append("<tr><td>通用名称CN值</td><td>" + abi.getCN() + "</td></tr>"); out.append("<tr><td>用户地域L值</td><td>" + abi.getL() + "</td></tr>"); out.append("<tr><td>用户组织O值</td><td>" + abi.getO() + "</td></tr>"); out.append("<tr><td>用户组织OU值</td><td>" + abi.getOU() + "</td></tr>"); out.append("<tr><td>用户ST值</td><td>" + abi.getST() + "</td></tr>"); out.append("</table><br>"); out.println("</body></html>"); 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.config config 用户端配置文件,casclient.config,各项解释见2.2节 include CAS aspi C接口头文件,aspicas6.h lib CAS aspi C接口本身库文件为libaspicas_c.so.6.1.0 其它全部是接口依靠库文件 对于Windows版接口安装,请先取得Windows版接口压缩包aspicas.zip,然后把压缩包解压得如Linux版类似目录结构和内容: 其中lib目录下aspicas6c.dll是接口动态库,其它是接口依靠库文件 3.2.2 config说明 3.2.2.1 casserver.config 它内容以下: ―――――――――――――――――――展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




CAS认证服务器接口使用基础手册V.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4766693.html