引言
背景
e-cology有提供单点登录地址及参数,供第三方系统调用单点登录到e-cology系统。
单点登录地址:/login/VerifyLogin.jsp post方式
账号参数:loginid
密码参数:userpassword
固定参数:logintype=1
这种方式有所限制,只支持第三方系统单点登录到e-cology登录首页。
项目概述
功能描述
现在,e-cology提供token验证的方式,第三方系统先调用获取token接口获取token,然后将“&ssoToken=token值”拼接到OA指定页面的url后面,访问这个页面,OA将验证token,验证成功后, 直接打开OA指定页面,验证不通过,则跳转到OA登录页面。
功能说明
配置说明
web.xml配置
在ecology\WEB-INF\web.xml中配置:(需要放在安全补丁包的后面)
<filter> <filter-name>WeaverLoginFilter</filter-name> <filter-class>weaver.weaversso.WeaverLoginFilter</filter-class> </filter> <filter-mapping> <filter-name>WeaverLoginFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> |
在ecology\WEB-INF\web.xml最后面配置
<servlet> <servlet-name>getToken</servlet-name> <servlet-class>weaver.weaversso.GetToken</servlet-class> </servlet> <servlet-mapping> <servlet-name>getToken</servlet-name> <url-pattern>/ssologin/getToken</url-pattern> </servlet-mapping>
<servlet> <servlet-name>CheckToken</servlet-name> <servlet-class>weaver.weaversso.CheckToken</servlet-class> </servlet> <servlet-mapping> <servlet-name>CheckToken</servlet-name> <url-pattern>/ssologin/checkToken</url-pattern> </servlet-mapping> |
WeaverLoginClient.properties配置
需要配置ecology\WEB-INF\prop\WeaverLoginClient.properties文件
ssss=127.0.0.1 |
备注:左侧配置单点登录OA标识,右侧配置允许单点登录OA的物理IP地址,多个以逗号分隔。
接口说明
获取token接口
接口地址:http://OA地址:port/ssologin/getToken
接口方法:
调用地址示例 | http://appip:port/ssologin/getToken |
功能说明 | 获取用户登录token |
调用方式 | POST |
| |
参数说明 | |
参数名 | 说明 |
appid | WeaverLoginClient.properties文件中左侧标识 |
loginid | OA账号 |
| |
返回值说明 | |
返回值说明 | 用户登录令牌
令牌生成规则 AES(loginid+"|"+ts+"|"+appid) 生成的令牌要保存到数据库中 |
获取token成功后,会将token值记录到sso_login_oa表中。
验证token接口
接口地址:http://OA地址:port/ssologin/checkToken
接口方法:
调用地址示例 | http://appip:port/ssologin/checkToken |
功能说明 | 校验用户登录token是否有效 |
调用方式 | POST |
| |
参数说明 | |
参数名 | 说明 |
token | 用户登录令牌 |
| |
返回值说明 | |
返回值说明 | true 表示校验成功 false 表示校验失败 |
Postman调用实例
获取token接口
接口地址:http://192.168.42.186:8080/ssologin/getToken
Header设置:Content-Type:application/x-www-form-urlencoded
Body选择:x-www-form-urlencoded
调用实例:
输入: | |
参数名 | 参数值 |
appid | test4 (WeaverLoginClient.properties文件有配置此应用IP) |
loginid | zixun004 (注册应用中对应appid存在此用户) |
输出: | |
CC9FC0BBE6406D4F9821B601B285F5A7537682B1684D98D5DC093860FABD4564 |
验证token接口
接口地址:http://192.168.42.186:8080/ssologin/checkToken
调用实例:
输入: | |
参数名 | 参数值 |
token | CC9FC0BBE6406D4F9821B601B285F5A7537682B1684D98D5DC093860FABD4564 |
输出: | |
true |
第三方系统单点登录OA实例
第三方单点登录OA,token只有一次有效。具体实例请参考《第三方系统单点登录OA系统.doc》文档。