引言
背景
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》文档。