当前位置: 首页 > news >正文

泛微OA-E9与第三方系统集成开发企业级实战记录(十四)

本篇介绍的主题是第三方系统单点登录跳转到泛微E9OA系统。大体思路是1第三方系统通过调用泛微OA的获取Token接口获取token2将token拼接到要访问的OA链接页面进行单点登录的访问。注意事项需要注意路径的拼接方式泛微E9采用前后端分离的单页面形式所以正确的路径拼接方式http://127.0.0.1/wui/index.html?ssoTokenXXX#/main正确的路径而非http://127.0.0.1/wui/index.html#/main?ssoTokenXXX错误的路径。至于泛微E9系统如何开启Token认证注册第三方应用等配置不在这里赘述这里以第三方系统的视角通过JSP脚本来模拟单点登录到OA主页面。示例如下% page importjava.io.BufferedReader % % page importjava.io.DataOutputStream % % page importjava.io.InputStreamReader % % page importjava.net.HttpURLConnection % % page importjava.net.URL % % page contentTypetext/html;charsetUTF-8 languagejava % %! //封装发送Post请求方法 String post(String urlPath) throws Exception{ URL urlnew URL(urlPath); HttpURLConnection httpConn(HttpURLConnection)url.openConnection(); httpConn.setDoOutput(true); httpConn.setDoInput(true); httpConn.setUseCaches(false); httpConn.setRequestMethod(POST); httpConn.setRequestProperty(Connection, Keep-Alive); httpConn.setRequestProperty(Charset, UTF-8); httpConn.connect(); DataOutputStream dosnew DataOutputStream(httpConn.getOutputStream()); dos.writeBytes(null); dos.flush(); dos.close(); int resultCodehttpConn.getResponseCode(); if(HttpURLConnection.HTTP_OKresultCode){ StringBuffer sbnew StringBuffer(); String readLinenew String(); BufferedReader responseReadernew BufferedReader(new InputStreamReader(httpConn.getInputStream(),UTF-8)); while((readLineresponseReader.readLine())!null){ sb.append(readLine).append(\n); } responseReader.close(); return sb.toString(); } return null; } % % //1.第三方系统获取token //参数说明appid为泛微方提供的三方系统的应用id //参数说明loginid为OA身份账号根据OA系统配置的映射规则可以是登录账号、可以是工号、可以是邮箱等等这里以固定账号示例实际应获取真实用户的账号信息 String getTokenUrl http://127.0.0.1:8809/ssologin/getToken?appiddemo1loginidzhangsan;//token接口地址 String ssoToken post(getTokenUrl); //2.携带ssoToken单点登录到OA首页 if (ssoToken ! null) { String oa_url http://127.0.0.1:8809/wui/index.html?ssoTokenssoToken#/main; response.sendRedirect(oa_url); return; } % html head titleSSO单点登录/title /head body /body /html
http://www.gsyq.cn/news/1393442.html

相关文章:

  • Linux的权限基本概念
  • 从游戏客户端到技术美术:我在完美世界内部转岗的真实经历与学习路径分享
  • FlashAttention与蛋白质工程:解码生命密码的智能钥匙
  • 从思维到代码:面向对象核心思想学习笔记
  • 2026 GEO 行业口碑推荐:真实企业测评 + 靠谱公司判断指南
  • 【AI】Claude Code接入DeepSeek
  • YOLO科研创新指南
  • 数据结构(1)
  • UE5 PhysicsControl物理动画保姆级教程:从插件开启到蓝图配置,手把手教你让角色动起来
  • 终极指南:IDM激活脚本免费永久解锁下载管理器完整解决方案
  • STM32F4 HAL库驱动W25Q256:从硬件焊接到软件调试的完整实践
  • 硬件木马检测中边界网络标签污染的对抗攻击与防御
  • 每天一小时,多赚100+,我靠这个方法,赚了很多小钱~
  • 黄冈黄州本地黄金回收全攻略:2026年5月实时金价行情与市民变现实录 - 润富黄金珠宝行
  • 6.Hermes兜底模型,太关键了
  • VisualCppRedist AIO:Windows运行库一键修复的终极解决方案
  • 大白话彻底听懂PyTorch autograd的底层逻辑
  • SQL工程师技能大揭秘:从数据量级处理到业务交互分析
  • 拉曼光谱基线漂移救星:深入理解多项式拟合校正中的‘残差判断’与‘峰值消除’
  • 铁桶厂家生产规模与产能——偃师市中原制桶有限公司 - 速递信息
  • EyesGuard:你的数字护眼管家,告别屏幕疲劳的终极方案
  • 百度脑图KityMinder:开源思维导图工具让你的创意无限延伸
  • 成都西装定制日常必逛实力店铺 - 西装爱好者
  • 为什么你的团队还在用Selenium硬编码?Lovable声明式测试范式已成2024头部科技公司准入标准
  • 技术赋能童趣新生态 童梦奇遇AI定制绘本引领亲子文创全新升级
  • 序列化和反序列化二叉搜索树(一)
  • 告别黑屏!手把手教你为OpenCore 0.8.5换上高颜值GUI启动菜单(附主题资源)
  • Hyper-V也能玩转GPU?Win11专业版搭建直通GPU的Ubuntu虚拟机实战
  • RIS-SWIPT系统硬件损伤与相位幅度耦合建模及性能分析
  • 告别U盘!手把手教你用Samba在Ubuntu 22.04上搭个家庭文件共享中心