电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

玩转SSO苍穹退出和钉钉集成

来源:金蝶云社区作者:金蝶2024-09-235

玩转SSO苍穹退出和钉钉集成




亲爱的小伙伴,你是不是也遇到了跟上面同学一样的问题呢?别急,小编这就给大家讲解这2个问题的解决方法。




1 苍穹SSO退出CAS服务器


针对“退出苍穹的同时退出CAS服务器”的客户需求,解决方案如下:

在苍穹退出后,系统会调用SSO插件的getTrdSSOAuth方法,并在该方法中返回到SSO插件中指定的登录页面。那么,我们在该方法中可以根据当前请求是退出操作,从而执行CAS server的退出操作。

相关代码如下:



public void callTrdSSOLogin(HttpServletRequest request, HttpServletResponse response, String backUrl)
  {
     String path = request.getRequestURI();
     if (path.contains("/auth/logout.do"))
     { 
      //在此处执行CAS server的退出操作
         HandleCASLogout(request);
     }
     ……
  }


2 苍穹SSO集成钉钉


为什么会存在钉钉和SSO集成的问题,而企业微信没有?


因为钉钉在获取认证Token的时候是通过前端JavaScript获取,而不是通过苍穹后台直接获取。所以,钉钉在认证时需要先跳转到苍穹移动登录页,在登录页中去实现钉钉的Token的获取,这是苍穹移动登录的默认存在逻辑。


明白了原因,问题就好解决了~在SSO认证需要跳转到CAS服务器的登录页的逻辑前,增加钉钉访问的识别,并将URL对应的参数转发到移动登录界面即可。


不多解释了,Talk is cheap。Show you the code:


public void callTrdSSOLogin(HttpServletRequest request, HttpServletResponse response, String backUrl)
  {
    String appType = request.getParameter("apptype");
    String tenantId = RevProxyUtil.getTenantCode(request);
    String server=UrlService.getDomainContextUrl(tenantId);
    if ("dd".equalsIgnoreCase(appType)) {
        //钉钉的处理逻辑
             //1,获取当前url的参数
       Enumerationenums = request.getParameterNames();
       StringBuilder sbBuilder = new StringBuilder();
       while (enums.hasMoreElements()) {
              String name = enums.nextElement

玩转SSO苍穹退出和钉钉集成

亲爱的小伙伴,你是不是也遇到了跟上面同学一样的问题呢?别急,小编这就给大家讲解这2个问题的解决方法。1 苍穹SSO退出CAS服务器针对“退...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信