GWT SSL + Jetty + 同源策略 = 混乱

Posted

技术标签:

【中文标题】GWT SSL + Jetty + 同源策略 = 混乱【英文标题】:GWT SSL + Jetty + Same origin policy = confusion 【发布时间】:2012-03-13 01:19:12 【问题描述】:

我正在使用 GWT 并希望在一个 html 页面(模块)上启用 SSL。我有多个模块,其中一个模块通过我的 web.xml 中的以下配置得到保护

<security-constraint>
  <web-resource-collection>
    <web-resource-name></web-resource-name>
    <url-pattern>/Secure.html</url-pattern>
    <http-method>GET</http-method>
  </web-resource-collection>
  <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>

我有另一个模块(登录页面),我从中调用 Secure.html 以通过 SSL 传递用户的登录信息。我有以下问题:

    我从 http(非安全登录页面)调用 Secure.html 模块是否违反了同源策略? 如何在嵌入式码头中添加 SSL 连接器?我正在使用 GWT eclipse 插件。不过我讨厌它。当我尝试访问受保护的 Secure.html 页面时,我得到 403 - 在开发模式下被禁止。我不想为我的所有模块使用 SSL (-server :ssl)。但是,如果我将应用程序部署在外部服务器 tomcat 上,它就可以正常工作。 我做得对吗?一定有比这更好的方法吗?

【问题讨论】:

【参考方案1】:

1) 更改协议肯定违反了same-origin policy。

2) 您不需要为嵌入式 Jetty 安装连接器...您看到的内容(并且应该)与您通过 HTTPS 看到的内容相同。 SSL 是将您的内容置于安全服务器之后的问题。 IMO 这是一个生产问题,而不是开发问题。

【讨论】:

但它是一个不同的 HTML 页面。还是? 如何在嵌入式码头启用 SSL 端口?我不想更改 GWT 码头启动器文件。所以问题是,如何在 GWT 开发模式下使用 SSL 保护一个资源(HTML 文件)而不打开嵌入式码头中的 SSL 端口? 好的。请原谅我对 SOP 的无知。人们如何从 http 调用 https 页面?同时,我将通过政策。 当用户访问您的不安全登录页面http://myserver.com/login.html 时,您将使用 URL 重写将用户发送到 https://myserver.com/login.html 好的。我想做类似的事情: 1. 从myserver.com/login.html,当用户单击登录按钮时,我想向服务器上受 SSL 保护的资源(HTML 页面或 servlet)发送请求。这样用户的凭据将通过 SSL。 2.认证后,服务器会将请求重定向到一个不安全的http页面。

以上是关于GWT SSL + Jetty + 同源策略 = 混乱的主要内容,如果未能解决你的问题,请参考以下文章

GWT 同源策略解决方法?

使用 Jetty 公开目录(或克服同源策略)

需要帮助调试 GWT - Jetty '未知领域'

将外部资源添加到 GWT 开发模式服务器 (Jetty)

GWT+Jetty JSP 编译器问题的解决方法? (Java 1.5 源代码级别无法识别)

GWT 和 SSL 不起作用?