【问题标题】:Can we read browser saved cookies from a java desktop application?我们可以从 Java 桌面应用程序中读取浏览器保存的 cookie 吗?
【发布时间】:2016-03-21 08:40:25
【问题描述】:

我想将 Web 登录会话转移到我的 Java 桌面应用程序,这样我就不想再登录我的桌面应用程序了。

一旦用户登录我的 Web 应用程序,我会在用户系统上设置一些 cookie,一旦他启动我的独立应用程序,我想使用存储在此处的凭据将我的用户登录到应用程序而不要求重新登录。

我的问题: - 我可以访问 cookie 来读取身份验证令牌和其他参数吗?这是正确的解决方案吗? - 要达到上述要求,有没有合适的解决方案。

Cookie 对我来说似乎是一个解决方案。但本质上,我想要 Web 应用程序和独立应用程序之间的无缝集成。有哪些可用的解决方案?

【问题讨论】:

  • 无法在浏览器之间共享 cookie。我认为应用程序也是如此。 superuser.com/questions/271710/….. 如果您将浏览器嵌入到您的应用中,不确定是否可以读取 cookie。

标签: java web-services cookies session-cookies jnlp


【解决方案1】:

对于以上需求我们需要使用Java Web Start技术 这是链接http://docs.oracle.com/javase/tutorial/deployment/webstart/

【讨论】:

    【解决方案2】:

    不确定 Skype 是如何做到的,但看起来 WebEx 和 GotoMeeting 都依赖于自定义浏览器扩展,这些扩展需要“与合作的本地应用程序通信”的权限(来自 Chrome 的示例设置)。

    我找不到任何 JNLP 原生的允许您读取浏览器 cookie 的东西,因为它应该是沙盒的。但是,通过 Java 应用程序登录后,您应该可以使用 JNLP Persistence APIs,如果有帮助的话。

    【讨论】:

      【解决方案3】:

      我认为你应该做相反的事情,当你在 web 上登录时,将一些 Session ID 传输到桌面应用程序。

      我的想法是在您的桌面应用程序中的某个端口上运行本地主机服务器(使用 Jetty)。当您在 Web 上登录时,它会调用该本地服务器的 url 来传输会话 ID。例如:

      localhost:8888/authen?sessionID=123456
      

      然后本地服务器将获取该 sessionID 参数。

      如果你觉得这适合你,我会解释得更详细

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-24
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        • 2011-02-06
        • 2012-01-17
        • 1970-01-01
        相关资源
        最近更新 更多