【问题标题】:get a cookie or session from one web application to another web application从一个 Web 应用程序获取 cookie 或会话到另一个 Web 应用程序
【发布时间】:2019-03-29 21:50:57
【问题描述】:

我有两个网络项目 Admin 和 Dashboard。 AdminEAR 正在部署在具有项目 Admin 和 Dashboard 的服务器上。

我在 Admin 项目 JSP 中提供了一个 href 链接,它将带我到仪表板索引页面。

管理项目的 URL 是

http://localhost:8080/admindesktop/admin/

href 会将我们带到带有 URL 的页面

http://localhost:8080/BMDashboard/index

管理员有一个我想在项目仪表板中获取的用户名。 如果有人从 Admin 项目中注销,我希望 Dashboard 也被注销。

我怎样才能实现它?大家有什么建议吗。

Dashboard 使用 Spring 和 Hibernate,但 Admin 不使用它。这是一个简单的网络应用程序

【问题讨论】:

  • Cookies 具有适当的域和路径。
  • @SBylemans,请你用一种实用的方法(代码)而不是理论上的方法来指导我吗?

标签: java jsp session cookies


【解决方案1】:

如果您有多个应用程序需要共同登录,我认为您应该使用单点登录:

https://searchsecurity.techtarget.com/definition/single-sign-on

如果您不能这样做,那么使用“/”路径共享 cookie 将是极简主义的方法。看看下面的链接:-

http://www.informit.com/articles/article.aspx?p=26138&seqNum=7

【讨论】:

    【解决方案2】:

    尝试创建一个将路径明确设置为“/”的 cookie,看看您是否也可以从其他应用程序访问它,因为上下文根不会起作用。一旦您确认您可以访问 cookie(也应该能够在浏览器中检查它),您可以创建一个 javascript 间隔函数,不断轮询服务器以获取 cookie 的状态......如果 cookie 有已删除(将最大生存时间设置为 -1)将用户重定向到注销页面并使会话无效。以下代码 sn -p 是创建 cookie 的标准方法:

    Cookie cookie = new Cookie("auth_token",cookieValue);
    cookie.setHttpOnly(true);
    cookie.setMaxAge(28800);
    cookie.setPath("/");
    httpResponse.addCookie(cookie);
    

    下面的代码 sn-p 使 cookie 失效:

    cookie.setMaxAge(0) // important part to invalidate the cookie;
    cookie.setPath("/");
    response.addCookie(cookie);
    

    【讨论】:

    • 我是会话和 cookie 的新手,不知道为 cookie 设置路径。请给我一些代码示例。
    • 谢谢伙计。我现在可以在仪表板应用程序中获取 cookie。但我仍然对注销功能感到困惑。我应该在后端而不是浏览器中使用 Javascript 函数还是 Java 函数?
    • @Ayush 您应该在后端使用 Java 函数进行注销。如果你把你的 cookie 设为 HttpOnly,你将无法在 JS 中访问它。
    • @Ayush 您还可以创建一个间隔 Javascript 函数来轮询后端服务或 servlet...
    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多