因公司需要,要开发致远OA的SSO插件. (版本:A8集团版)
具体实现方法如下:
第一步:打开致远安装目录 /A8/apache/conf/目录,找到SeeyonConfig.sh 货SeeyonConfig.cmd命令(具体看A8所在系统的类型Linux/Windows).打开后出现如下界面:
修改红色方框圈中的条目,填写上外部访问地址URL
2.开始制作插件,新建Java类实现SSOLoginHandshakeAbstract 类,重写方法
handshake 和 logoutNotify
3.在方法 handshake 中返回OA的登录名称
4.配置插件bean 红色框圈起来的就是刚才新建的Java类
5.上述完成后,将Java 类编译后放置在A8安装目录下的class文件夹中,注意包名称不要乱,必须存在,否则会出现找不到实现类,导致OA启动失败
6.将新建的spring配置文件放置在A8的插件目录
7.重启A8服务.
9.在浏览器中访问 http://ip:端口/seeyon/login/sso?from=yhxt&ticket=45688768
10.注意:在上述链接中的from的取值是spring配置文件中的bean id,ticket的值不可以直接是登录名,需要转换.转换逻辑可以写在自己的Java实现类里面去!
这样的话,致远的插件就算开发完成了,这个时候,我们在第9步骤中体现出的http 链接,就可以放置在第三方系统的页面中,或者其他位置(看自己需求),最终就实现了从第三方单点登陆到致远OA了。
总的来讲,实现此功能的大致逻辑是:当第三方系统点击给定的第9步骤的链接时,OA开发的插件中会拿到链接中的ticket(这个ticket 建议是ID,或者其他主键),然后OA会将拿到的ticket 再次发送给第三方系统,这个时候,第三方系统拿到OA传递的ticket的值,查询自己的数据库,找出ticket 对应的 OA中的登录名。返回给OA,这个时候,单点登陆就完成了。。。