从gwt中受密码保护的url创建图像对象

Create image objects from password-protected urls in gwt

本文关键字:url 创建 图像 对象 密码保护 gwt      更新时间:2023-09-26

我想在GWT应用程序中显示一些图像。这些图像存储在一个密码保护的url,外部我的网站在一般情况下。我可以使用Image(java.lang.String url)构造函数,将用户名和密码放在url中。所以我可以调用:

Image img = new Image("http://user:pass@mydomain.com/image.png")

但是用户名和密码对任何查看页面源代码的人都是可见的。我想用该url建立一个经过身份验证的连接,然后在构造函数中使用普通url:

Image img = new Image("http://mydomain.com/image.png")

我不想问用户的用户名和密码通过一个弹出,因为在一般情况下,他将不同于一个谁的图像属于,所以他不会有凭据的用户。图片的所有者在注册时给了我他们的url,用户名和密码。

这有可能吗?

如果您的用户没有查看图像的凭据,那么您将无法从用户的客户机加载它们。在不让他们看到密码的情况下,为他们提供密码是没有好的方法的。

您可以通过将图像请求发送到您自己的服务器来重构它。然后,您自己的服务器可以将请求发送到外部服务器,并提供密码,然后将响应传递给您的用户。这是一个额外的跳跃,但您可以将密码完全保密。

如果您要求用户提供另一个站点的密码,则需要非常小心。一般来说,这听起来像是一个冒险的尝试—您暴露了许多不同的方法来访问其他人的文件。你能创造的越少越好。如果外部站点支持某种间接授权方法,如oauth,那么您绝对应该选择这种方法,而不是请求用户的密码。

您需要弹出该域的窗口,并让用户填写其用户名和密码。对于同一域的所有后续请求,您不应该得到一个新的弹出窗口。这样做的一种方法是为mydomain.com创建一个隐藏的iframe。