《webservice开发技术说明书》由会员分享,可在线阅读,更多相关《webservice开发技术说明书(17页珍藏版)》请在金锄头文库上搜索。
1、1 前言前言在 NC 环境中发布 WS 服务以及创建 SEI(service endpoint interface)最便捷的方式就是使用 NC Eclipse 插件的相关功能。使用前需要手动安装 NC WebService Eclipse 插件:nc.uap.mde.wstools_1.0.0.jar。以下描述的发布过程假设该插件已成功安装且 java 工程为 NC Module Project 工程。2 发布服务发布服务在 NC 中发布 WS 服务可简单描述如下:由 Java 接口创建 WSDL 文件。如果 Java 接口中引用了自定义的 Java 类,需要创建相应的 XSD 文件。在模块下
2、的 UPM 文件中配置 WS 服务。如果需要 WS 安全方面的考虑还需要配置 ws-security.xml 文件,及相关的证书管理配置。注意:使用 NC 的 Eclipse 插件配置 UPM 文件的过程中,可以自动创建 WSDL 文件和XSD 文件。这样比单独创建 WSDL/XSD 文件便捷。2.1 创建创建 WSDL 文件文件在 Eclipse IDE 中选中要发布为 WS 服务的接口文件,点击右键弹出功能菜单。选择 WS Tools 下的 Genarate WSDL 菜单项,如图:选择后弹出 WSDL 创建面板,设置 WSDL 文件的保存路径。勾选 Cascade 复选框:表示如果该接口
3、引用到了其它的自定义 Java 类,则一并生成相应的 XSD 文件。勾选 force 复选框:表示如果该路径下已存在同名的 WSDL 文件,则覆盖。如图:点击“Finish”按钮完成 WSDL 文件的创建工作。2.2 创建创建 XSD 文件文件关联类的 XSD 文件即可以在 1.1 创建 WSDL 文件的过程中级联创建,也可以单独创建。过程如下:在 Eclipse IDE 中选中准备创建 XSD 的 Java 类文件,点击右键弹出功能菜单。选择 WS Tools 下的 Genarate XSD 菜单项,如图: 选择后弹出 XSD 创建面板,设置 XSD 文件的保存路径。勾选 Cascade 复
4、选框:表示如果该类引用到了其它的自定义 Java 类,则一并生成相应的 XSD 文件。勾选 force 复选框:表示如果该路径下已存在同名的 XSD 文件,则覆盖。如图:点击“Finish”按钮完成 XSD 文件的创建工作。2.3 配置配置 UPM 文件文件配置 UPM 文件的工作量并不大,可手工也可使用 NC 工具。下面对使用 NC 工具配置的流程加以描述,其中涉及到 NC WebService Security 方面的规范知识可参考WebService 安全配置文档。在 Eclipse IDE 中选中要发布为 WS 服务的接口文件或实现类,点击右键弹出功能菜单。选择 WS Tools 下的
5、 Publish Web Service 菜单项后弹出 UPM 文件选择窗口,如图:点击“Next”后进入如下配置页,最下面的 interface,impl 是两个必填项。指明要发布为 ws 服务的接口和实现类。 “设置属性”栏中的各项属性是 NC 组件正常发布所需要的配置项,这里不做介绍,可参考组件发布的相关文档。需要指出的是如果配置了组件名则这个组件名就是 WS 的服务名,否则系统会将下页配置的Address 做为 WS 的服务名。点击“Next”后进入如下配置页。ExtensionClass:指定了 Server 启动时部署这个组件的处理类。Web Service Style:暂时只能选
6、 NC specify。如果勾选了“Create WSDL if not exist”项,则当未创建 wsdl 、xsd 文件时会自动创建。Wsdl location:指出 wsdl 文件的位置。Address:是 WS 服务地址,结构为“/”+服务名。Interceptor:拦截器。点击“Next”进入 WebService 安全配置项。勾选 web service 安全配置项。选择 KeyStore,从 modules/uapws/config/ws-security.xml 中选择。默认的是该文件中 crypto id 为 default 的 KeyStore。decKS:解密需要的 K
7、eyStore。encKS:加密需要的 KeyStore。signKS:签名需要的 KeyStore。verifyKS:验证签名需要的 KeyStore。点击“Next” ,进入 WebService 安全详细信息配置页。配置 Protect 项。如果在上一页的安全配置项中勾选了“要求认证授权” ,则在当前的详细信息配置页中需要配置 Protect 项。如图:认证组件:认证组件:如果没有配置,表示使用系统默认的认证器。他为对nc.uap.ws.security.IAuthenticator 组件的引用。默认为名称为nc.uap.ws.security.IAuthenticator 的组件。授权
8、组件:授权组件:如果没有配置,表示使用系统默认的权限机制,他为对nc.uap.ws.security.IAccessController 的组件的引用,默认为名称nc.uap.ws.security.IAccessController 的组件。配置 UserToken 项。如果在上一页的安全配置项中勾选了“要求输出 token” ,则在当前的详细信息配置页中需要配置 UserToken 项。如图:在 profile 下拉框中点选“UsernameProfile”后出现如下配置页。配置在信息输出时提供给别人的主体信息,profile 表示遵循的 SecurityToken规范,目前只支持 Use
9、rnameProfile。对于 UsernameToken 的 profile,有属性:user, password, cbClass, cbRef。如果指定了 user/password 就不需要cbClass,cbRef 的配置。user/password 表示一种静态的用户名/密码信息提供,而 cbClass,cbRef 表示一种动态的复杂的用户名密码提供方式。cbClass 为javax.security.auth.callback.CallbackHandler 的类,cbRef 为javax.security.auth.callback.CallbackHandler 组件的引用(
10、该描述适合后续的sign,encrypt 的描述。配置 Signature 项。如果在上一页的安全配置项中勾选了“要求输出签名” ,则在当前的详细信息配置页中需要配置 Signature 项。如图:签名确认:勾选此项表示在应答时需要返回请求方的 signature,否则不返回请求方的 signature。签名用户:从签名对应的 KeyStore 中选取用于签名的私钥名。Callback:如果签名用户的获取方式比较复杂不能直接指定而是通过 callback方式获取的。则此处需要配置 callback 项。Key 标识方式:指示签名或加密的 key 的值应用方式,默认为 IssuerSerial。
11、Canonical:指示正规化算法没有设定,默认为,http:/www.w3.org/2001/10/xml-exc-c14n#。算法:指定 Key 的算法。可以不选,此时系统会自动判断算法类型。签名元素:指定需要签名的信息。配置 verify 项。如果在上一页的安全配置项中勾选了“要求输入签名” ,则在当前的详细信息配置页中需要配置 Verify 项。如图:如果不存在通信双方互为 Server 的情况(NC 的目前应用基本不存在) ,建议不要勾选 Confirm 项。配置 encrypt 项。如果在上一页的安全配置项中勾选了“要求输出加密” ,则在当前的详细信息配置页中需要配置 encryp
12、t 项。如图:加密用户:从加密对应的 KeyStore 中选取用于加密的密钥名。用户回调类:如果加密用户的获取方式比较复杂不能直接指定而是通过callback 方式获取的。则此处需要配置用户回调类。Key 标识方式:指示签名或加密的 key 的值应用方式,默认为 IssuerSerial。Key 加密算法:系统只支持 RSA15 算法。算法:加密算法。加密元素:指定需要加密的信息。配置 decrypt 项。目前没有需要配置的内容。完成上面的配置后,点击“Finish”按钮,保存配置信息。3 客户端调用客户端调用NC 的 WebService 客户端调用需要有服务接口类,可以利用 WSDL 文件
13、创建服务接口,WSDL 文件可以远程获取。拥有了服务接口后就可以利用 API 进行客户端对服务端的访问了。3.1 创建服务接口创建服务接口注意:使用 NC 的 Eclipse 插件创建 JAVA 接口的过程中,可以自动创建相关 JAVA 类文件。这样比单独创建相关 JAVA 类文件便捷。3.1.1 创建相关创建相关 JAVA 类文件类文件在 Eclipse IDE 中选中要创建 JAVA 类文件的 XSD 文件,点击右键弹出功能菜单。选择 WS Tools 下的 Genarate Java Class 菜单项,如图:选择后弹出 Java 类文件创建面板,设置类文件的保存路径。如图:force
14、复选框表示是否要覆盖该保存路径下的同名文件。点击“Finish”按钮完成创建工作。3.1.2 创建创建 JAVA 接口接口在 Eclipse IDE 中选中要创建 SEI 的 WSDL 文件,点击右键弹出功能菜单。选择WS Tools 下的 Genarate Java Interface 菜单项,如图:选择后弹出 SEI 创建面板,设置 SEI 文件的保存路径。如图:cascade 复选框:表示是否级联创建相关的 Java 类文件。force 复选框:表示是否要覆盖该保存路径下的同名文件。点击“Finish”按钮完成创建工作。3.2 API 使用使用可以通过 API 进行安全特性的配置和控制:
15、3.2.1 WSS4JConfig配置的核心类,所有安全属性的配置信息都在里面。每个属性都有 get/set 方法。现逐一介绍其属性的含义。encCryptoId:在 NC 的 WebService 安全配置文件中,Crypto 标签描述了KeyStore 的访问信息。CryptoId 是 Crypto 的唯一标识。encCryptoId 标识的Crypto 描述了用于加密信息所使用的 Key 的访问信息。decCryptoId:用于解密的 Crypto。signCryptoId:用于签名的 Crypto。verifyCryptoId:用于验证签名的 Crypto。securityToken:
16、安全令牌,类型是 SecurityToken, NC 目前只支持UsernameToken。sign:类型是 SignAdvice,描述了签名信息。verify:类型是 VerifyAdvice,描述了验证签名的信息。encrypt:类型是 EnryptAdvice,描述了加密的信息。decrypt:类型是 DecryptAdvice,描述了解密的信息。authentication:类型是 Authentication,描述了认证信息。3.2.2 UsernameToken用于配置进行请求的主体,其属性描述如下:user:用户名。password:密码。nonce:布尔型,是否附带随机数。created:布尔型,是否附带 Token 创建时间。callbackHandler:类型是 CallbackHandler,获取密码的回调处理类。pwType:类型是 PwType,密码的类型,包括三种:PasswordNone:没有密码。PasswordText:密码是明文形式。Passwor