当前位置: 首页 - 编程技术 - 文章正文

泛微二次开发 - 单点登录

xiaoqihv

引言

背景

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》文档。

文章地址:https://wenmayi.cn/post/429.html