1、福建省教育资源公共服务平台 3.0 开放 API 接口规范1福建省教育资源公共服务平台开放 API 接口规(V3.0)福建省教育资源公共服务平台 3.0 开放 API 接口规范21 API 访问鉴权1.1 介绍API 调用时,应用向福建省教育资源公共服务平台请求 token,福建省教育资源公共服务平台分配 Token 信息并指明有效期,只要在 Token 有效期内,应用无需重新发起 Token 申请,被调用方在第一次接收 Token 时发起验证请求,并保存 token信息和有效期,只要在 Token 有效期内,后续调用就无需再向福建省教育资源公共服务平台申请 Token 验证。1.2 应用场景
2、1.用户使用应用。福建省教育资源公共服务平台 3.0 开放 API 接口规范32.应用执行处理逻辑。3.应用使用 APPID,时间戳等参数向平台请求访问 TOKEN。4.平台向应用返回访问 TOKEN。5.应用携带访问 TOKEN 请求调用平台 API。6.平台对 TOKEN 进行校验并处理 API 调用请求,向应用返回调用结果。2 应用支付2.1 介绍用户购买应用中商品,应用向福建省教育资源公共服务平台发起扣费,福建省教育资源公共服务平台扣取用户云币,并根据商务合同分成规则向应用所属合作伙伴帐户存入相应云币。2.2 应用场景福建省教育资源公共服务平台 3.0 开放 API 接口规范41. 用
3、户在应用购买学习资料。2. 应用携带参数扣费相关参数重定向福建省教育资源公共服务平台进行扣费。3. 福建省教育资源公共服务平台页面提示用户扣费,展示所购物品和费用相关信息。4. 用户在扣费页面确认扣费。5. 福建省教育资源公共服务平台扣取用户云币,将扣费结果返回到应用。6. 福建省教育资源公共服务平台后台通知应用扣费结果。7. 应用向福建省教育资源公共服务平台返回扣费结果处理结果。3 单点登录3.1 介绍福建省教育资源公共服务平台 3.0 开放 API 接口规范5福建省教育资源公共服务平台集成多个业务系统,平台的前端展示门户对用户实现统一登录入口,只要在福建省教育资源公共服务平台登录的用户在福
4、建省教育资源公共服务平台与各业务系统间不需要多次登录,进而实现对所有被授权的网络资源进行无缝访问了。3.2 单点登录场景1. 用户登录福建省教育资源公共服务平台门户。2. 福建省教育资源公共服务平台保存用户会话信息,在浏览器 COOKIE 中保存用户 TGC信息。3. 用户在福建省教育资源公共服务平台选择应用,福建省教育资源公共服务平台将用户重向至应用。福建省教育资源公共服务平台 3.0 开放 API 接口规范64. 用户在应用内访问受保护资源,应用将用户重定至福建省教育资源公共服务平台。5. 福建省教育资源公共服务平台从浏览器中获取用户 TGC 信息,并根据 TGC 校验用户会话。6. 福建
5、省教育资源公共服务平台生成 ST,并携带 ST 将用户从福建省教育资源公共服务平台重定向至应用。7. 应用使用 ST 请求平台校验。8. 平台向应用返回校验结果及用户信息。3.3 单点登录配置说明:以下给出的配置是通用的客户端配置 Demo,只适合跳转地址固定的场景(即serverName 对应的 value 是固定的) 。如有其他特殊需求,需客户端程序自己实现。3.3.1 Java 语言客户端配置1.先把 ssoclient.jar 引入到项目的工程中(一般是 lib)目录。2.在项目 web.xml 文件添加以下内容福建省教育资源公共服务平台 3.0 开放 API 接口规范7SSOFilt
6、ercom.whty.aam.client.authentication.AuthenticationFiltercasServerLoginUrlhttp:/ 3.0 开放 API 接口规范8vlidationFiltercom.whty.aam.client.validation.Cas20ProxyReceivingTicketValidationFiltercasServerUrlPrefixhttp:/ :20014/aamif/ticketValidateserverNamehttp:/192.168.1.99:8088vlidationFilter/*福建省教育资源公共服务平台
7、3.0 开放 API 接口规范9com.whty.aam.client.session.SingleSignOutHttpSessionListenerSingleSignOutFiltercom.whty.aam.client.session.SingleSignOutFilterSingleSignOutFilter/*福建省教育资源公共服务平台 3.0 开放 API 接口规范10httpServletRequestWrapperFiltercom.whty.aam.client.util.HttpServletRequestWrapperFilterhttpServletRequestW
8、rapperFilter/*AssertionThreadLocalFiltercom.whty.aam.client.util.AssertionThreadLocalFilterAssertionThreadLocalFilter/*3.项目中取得 ticket可用 request.getSession().setAttribute(“ticket“, ticket);用 ticket 这名称从ssession 中取得 ticket。4.取得用户的 usessionid可用 com.whty.aam.client.authentication.AttributePrincipal 这个类AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();String usessionid = principal.getName();