需求
随着企业的日益壮大,信息化平台也会逐渐完善,企业用户也会慢慢需要登录多个平台更好的完成工作,完成业务系统的整合,这样出现了SSO,用户只需要登录一次就可以访问所有相互信任的应用系统。
PLM系统在国内属于较后置的系统平台,一般都会在ERP、MES之后开始搭建PLM系统,我们如何在企业的门户上挂载PLM的链接窗口,实现单点登录呢? 详情如下:
描述
该案例描述了,如何在门户网站上登录后, 直接打开Agile首页的方式.
主要步骤如下:
- 配置Weblogic配置文件.关闭校验
- 开发用于跳转的服务, 参考代码如下章节, 主要利用门户传递的密码, 在利用html自动提交,跳转到Agile首页.
- 配置该跳转的服务和门户之间的认证许可, 一般门户网站有接入单点登录的方式.如CAS等.
步骤2中的密码,有两种方式:
- 固定密码, 且用户也无法知道的, Agile登录页面如果可以通过网络限制用户不可访问,那是最好.
- 动态获取, 利用接口定时同步门户的密码和Agile之间的密码, 并且记录到中间表. 这样跳转时, 从中间表获取明文密码.
参考代码
配置文件(下方Controller中的ACTION参数)
这是用于跳转到对应Agile系统的路径
action: http://xxxx:7001/Agile/default/j_security_check
Controller
@RequestMapping("/") public String conversion(Model model, HttpServletRequest request, HttpServletResponse response){ LOG.info("################### Current Remote User : {} ########################",request.getRemoteUser()); String remoteUser = request.getRemoteUser(); model.addAttribute("username",remoteUser); model.addAttribute("password","123@Abc"); model.addAttribute("action",ACTION); return "conversion"; }
conversion.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Title</title> </head> <body> <form id="customform" method="POST" th:action="${action}"> <input name="j_username" type="hidden" th:value="${username}"> <input name="j_password" type="hidden" th:value="${password}"> <input name="formAction" value="j_security_check" type="HIDDEN"> </form> </body> <script type="text/javascript"> var form = document.getElementById("customform"); form.submit(); </script> </html>
关注公众号:熊猫Jay字节之旅,了解更多 AI 技巧 ~