java - 如何访问受密码保护的网络上的 mp4 视频

标签 java authentication vaadin http-authentication

我正在使用 vaadin video 将一些视频集成到我的应用程序中。 这些视频位于网络上,受密码保护。我正在使用以下方法,但它对我不起作用。它一直询问我用户名和密码。

        URL url = new URL(Constants.VIDEO_HTTP_ADDRESS + fileName + ".mp4");
        URLConnection uc = url.openConnection();
        String userpass = Constants.VIDEO_HTTP_ADDRESS_USERNAME + ":" + Constants.VIDEO_HTTP_ADDRESS_PASSWORD;
        String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
        uc.setRequestProperty("Authorization", basicAuth);

....
....
        final Video v = new Video(label);
        ExternalResource fileResource;

        fileResource = new ExternalResource(url);
        v.setSources(fileResource);

我有用户名和密码,我想将这些视频集成到我的应用程序中,这样它们就不需要明确地需要用户名和密码。

最佳答案

正如 @f1sh 在他的评论中指出的,您需要使用 URLConnection 来获取视频资源。您可以使用 StreamResource 来代替 ExternalResource,它允许从提供的 InputStream 加载资源。

类似的东西应该有效:

Video v = new Video();
v.setSource(new StreamResource(new StreamSource() {

    @Override
    public InputStream getStream() {
        try {
            URL url = new URL(Constants.VIDEO_HTTP_ADDRESS + fileName + ".mp4");
            URLConnection uc = url.openConnection();
            String userpass = Constants.VIDEO_HTTP_ADDRESS_USERNAME + ":" + Constants.VIDEO_HTTP_ADDRESS_PASSWORD;
            String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
            uc.setRequestProperty("Authorization", basicAuth);
            return uc.getInputStream();
        } catch (IOException e) {
            //add some exception handling here
        }
    }

}, fileName + ".mp4"));

关于java - 如何访问受密码保护的网络上的 mp4 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791282/

相关文章:

java - 为什么不可变对象(immutable对象)在双重检查锁定中是安全的?

javascript - PHP登录脚本重定向在登录后不起作用

java - 创建具有多个 View 、许多组件和内存问题的大型 Web 应用程序的最佳实践

vaadin - 我想在悬停分离器时触发 handle 受到影响

java - 为 jar 应用程序创建启动器

java - 错误 : Failed to resolve: com. android.support :mediarouter-v7:23. 4.0

ruby-on-rails - 使用 authlogic rails 插件在数据库中预填充管理员用户

Vaadin SCSS 编译失败 - 找不到要导入的文件或无法读取 : . ./valo/valo.scss

java 使用未经检查或不安全的操作重新编译并出现 xlint 错误?

git - 无法通过 SSH 进入我的 Bitbucket 存储库 - conq : repository access denied