2017-03-09 28 views
1

我在使用的Cookie域有问题.mydomain.net我想用3个勺子,所以它会是.app .mydomain.net 所以我有这样的:在java中设置3个饼干的域名

// Save siteminder cookie from a login succes and redirect to target application url 
      log.debug("Certificate type: "+ s_certificateType); 
      log.debug("Application Authentication Level: "+ s_authLevel); 
      if (s_certificateType.length() == 0 || s_certificateType.equals ("HARD") || (s_certificateType.equals ("SOFT") && (s_authLevel.equals("1") || s_authLevel.equals("2")))) { 
       Cookie c_cookie = new Cookie ("SSOHUBSESSION", s_sessionToken); 
       c_cookie.setDomain(application.getInitParameter("domain")); 
       response.addCookie (c_cookie);     
       log.debug("REDIRECT: "+ s_returnurl); 
             session.invalidate(); 
       Cookie[] a_cookies = request.getCookies(); 
       if (a_cookies != null) { 
        for (int i = 0; i < a_cookies.length; i++) 
        { 
         if (a_cookies[i].getName().equals("SSOHUBFED_OLD_SESSION")) { 
          log.debug("Update the SSOHUBFED_OLD_SESSION with the new Session. "); 
          c_cookie = new Cookie("SSOHUBFED_OLD_SESSION", s_sessionToken); 
          c_cookie.setDomain(application.getInitParameter("domain")); 
          //c_cookie.setMaxAge(0); 
          c_cookie.setValue(s_sessionToken); 
          response.addCookie(c_cookie); 
         } 
        } 

       } 


       response.sendRedirect(s_returnurl); 
       return; 
      } 
     } 

在这里,我想只是添加到底response.addCookie;(+ c_cookie “的应用程序。”) 我不知道也许有一种方法可以直接获得3或某物的独家新闻! 有没有人有我如何做到这一点的想法? 谢谢你的帮助。

回答

0

我不确定我是否按照您要在代码中执行的操作,但在SiteMinder(又名CA SSO)中,Cookie域范围在代理配置对象中定义。此外,还会有一个名为SM_SDOMAIN或SMSDOMAIN的请求标头(下划线可能存在也可能不存在,也取决于ACO设置),其中包含SiteMinder正在使用的确切Cookie域。

String smcookiedomain = request.getHeader("SM_SDOMAIN"); 

希望这会有所帮助!

+0

非常感谢您的帮助。好的,那是我想要做的事。我知道如何使用代理(它在ACO方面)。 现在我正在使用SAML,我不得不更改Pom.XML来解决问题,但我有一个新的cookie,我不明白它从哪里来?这是一个名为SAML2SSO的页面,它发送另一个cookie,我不知道如何解决这个问题? –

+0

它是什么cookie? –