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 + 同源策略 = 混乱的主要内容,如果未能解决你的问题,请参考以下文章