【问题标题】:Setting gwt cookie when redirecting to other domain重定向到其他域时设置 gwt cookie
【发布时间】:2015-04-14 17:11:38
【问题描述】:

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

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

Window.Location("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);
    }  

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

【问题讨论】:

    标签: java gwt cookies


    【解决方案1】:

    问题位于 cookie 的域部分。出于安全目的,一台服务器的 Cookie 在另一台服务器上不可用(如果服务器不是来自一个域)。我想您需要跨域cookie之类的东西,请按照link或重建请求的url并直接使用GET\POST发送所需的信息。

    【讨论】:

    • 感谢@Alexander,但如果您看到我的代码,我会在打开 Window.Location("167.23.543.34:8087/VolexSer/volex") 之前将 cookie 设置为“167.23.543.34”,因此 cookie 设置在同一个域中跨度>
    • 您好@Alexander,如果我需要提供更多详细信息,请告诉我。
    • 对我来说还不是很清楚。在您的代码中,我看到 baseDomain 始终引用 localhost。
    • 您可能需要将 cookie 工厂中的 baseDomain 更改为 eWebPageUrl 中的内容吗?
    • 感谢提醒,请查看编辑后的代码。这是其他域。
    猜你喜欢
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2011-06-15
    相关资源
    最近更新 更多