开启sso之后兼容钉钉单点登录原创
金蝶云社区-来自行星的稻米
来自行星的稻米
1人赞赏了该文章 610次浏览 未经作者许可,禁止转载编辑于2023年06月29日 19:05:00

在  单点类的callTrdSSOLogin方法下面,拼接上对应的钉钉参数,然后在拼接上请求的url,实现代码入下



       String appType = httpServletRequest.getParameter("apptype");
       String tenantId = RevProxyUtil.getTenantCode(httpServletRequest);
       String server = UrlService.getDomainContextUrl(tenantId);
       StringBuilder sbBuilder = new StringBuilder();
       logger.info(String.valueOf(httpServletRequest.getRequestURL()));
       if ("dd".equalsIgnoreCase(appType)) {
           //钉钉的处理逻辑
           //1,获取当前url的参数
           Enumeration<String> enums = httpServletRequest.getParameterNames();
           while (enums.hasMoreElements()) {
               String name = enums.nextElement();
               if (!name.equals("redirect")) {
                   if (StringUtils.isEmpty(sbBuilder.toString())) {
                       sbBuilder.append("?").append(name).append("=");
                   } else {
                       sbBuilder.append("&").append(name).append("=");
                   }
                   sbBuilder.append(httpServletRequest.getParameter(name));
               }
           }
           int index = httpServletRequest.getRequestURI().indexOf("/", 1);
           String uri = httpServletRequest.getRequestURI().substring(index);
           //2,生成返回的Url,包括查询参数
           String OriginRedirect =  new StringBuilder(server).append(uri).append(sbBuilder).toString();
           //3,生成移动登录url,返回
           String redirect = null;
           try {
               redirect = new StringBuilder(server).append("/login-mobile.html?redirect=").append(URLEncoder.encode(OriginRedirect, "UTF-8")).toString();
               logger.info(redirect);
               response.sendRedirect(redirect);
           } catch (IOException e) {
               throw new RuntimeException(e);
           }
       } else {

       }



图标赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0