重定向到其他域时设置 gwt cookie



我有一个使用 gwt.2.5.1 java 开发的 Web 应用程序。在我的应用程序中,我有一个链接"Volex页面",它将发送到另一个服务器(Volex)的请求。

如果我使用"http://localhost:8085/myApp"打开我的应用程序并且可以看到"VLoex 页面",一旦用户点击在"Volex页面"上,它将被重定向到"Volex服务器",如下所示。

窗口位置("http://167.23.543.34:8087/VolexSer/volex")

上面的 url 访问了需要一些信息(如会话 ID)的 volex 服务器,为此我必须在 cookie 中设置会话 ID,如下所示:

    Date cookieDate = new Date();
    cookieDate.setDate(cookieDate.getDate() + 1);
    String baseUrl = "http://167.23.543.34:8087/VolexSer/volex";
    Integer nDomainInitialPosition = baseUrl.indexOf("/");
    Integer nDomainEndPosition = baseUrl.lastIndexOf(":");
    String baseDomain = baseUrl;
    if (nDomainInitialPosition == nDomainEndPosition) {
        nDomainEndPosition = baseUrl.indexOf("/");
    }
    baseDomain = baseUrl.substring(nDomainInitialPosition + 2, nDomainEndPosition);
    Window.alert("baseDomain: " + baseDomain);
    String eWebPageUrl = com.google.gwt.user.client.Window.Location.getHref();
    if (eWebPageUrl.contains("https://")) {
        Cookies.setCookie("sessionId", LoginInfo.getSessionId(), cookieDate, baseDomain, "/", true);
    } else {
        Cookies.setCookie("sessionId", LoginInfo.getSessionId(), cookieDate, baseDomain, "/", false);
    }  

这里打开两个域,一个是"本地主机",另一个是"167.23.543.34",如果我像上面一样设置 cookie,它不会显示在请求标头中。任何人都可以告诉mw上面的代码有什么问题吗?

问题位于 cookie 的域部分。出于安全目的,一台服务器的 Cookie 在另一台服务器上不可用(如果服务器不是来自一个域)。 我想你需要像跨域cookie这样的东西,请点击请求的链接或重建网址,并直接使用GET\POST发送所需的信息。

最新更新