如何在Vaadin(Java)中显示MJPEG-stream?

时间:2015-06-08 09:24:09

标签: java http stream vaadin mjpeg

我正在寻找一种在我的vaadin应用程序中显示MJPEG流(来自ip cam)的方法。

我的问题是启动流的必要身份验证。

简单地获取流的简单解决方案:

String url = "...urlgoeshere/video.mjpg";

Image image = new Image();
image.setSource(new ExternalResource(url));
content.addComponent(image);

如果我允许匿名连接到相机,它就像一个魅力,但那不是我的目标。

我尝试通过以下方式进行身份验证:

Authenticator.setDefault(new MyAuthenticator(username, password));

但它不会影响请求。

如果我手动设置如下请求:

String url = "...urlgoeshere/video.mjpg";

Authenticator.setDefault(new MyAuthenticator("username", "password"));

URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET"); 

身份验证有效,但这样我必须自己处理所有图像。

有没有更好的方法来显示需要身份验证的流?

1 个答案:

答案 0 :(得分:0)

我认为您应该可以使用用户名和&外部资源的URL中的密码。

https://foo:password@example.com

但这取决于网络摄像头用于验证的协议, 并且您还将拥有“可见”的用户名和密码 你的应用程序的html / javascript。

还有一点说明: 微软做了disable this some time ago,所以如果你的用户使用的是IE, 这不起作用。