Java、Spring Boot 与 Vue
通过 Spring Security 和服务器端内容目录集成受保护视频,再使用 Vue 展示播放器。
播放授权的流程
您的后端决定谁可以观看。DRM-X 提供播放授权,播放器使用该授权请求 DRM 许可证。
- 观看用户
登录您的服务并请求播放视频。
- 您的后端
检查用户的购买记录、订阅状态或其他观看权限。
- DRM-X
应用所选播放规则,返回播放配置和授权信息。
- 播放器
使用返回的授权信息,请求播放所需的 DRM 许可证。
构建与配置后端#
示例使用 Java 21、Spring Boot 3.5.11、Spring Security 和 JDBC。使用 Maven 构建,并在服务器上设置 DRMX_SITE_ID、DRMX_SITE_KEY、DRMX_ACCESS_KEY 和 DRMX_INSTANCE_ID。部署时通过 DRMX_DATABASE_URL 配置持久化数据库。
mvn test
mvn package
java -jar target/drmx-java-vue-1.3.0-SNAPSHOT.jar
默认 H2 数据库为空,且只保存在内存中。系统不会自动授权演示账号或内容。请连接现有的 Spring Security 账号服务,或使用 Spring 的 JdbcUserDetailsManager 和经过编码的密码创建 users 与 authorities 记录。
连接内容与访问规则#
在 drmx_video 中填写已发布的 Content ID、内容类型、策略和启用状态。drmx_access 将用户名与具体视频绑定,并记录开始时间、到期时间和撤销状态。VideoRepository.authorized 会在每次请求时检查这些记录。您可以根据已有的课程或订阅表调整查询。
提供的数据库结构仅用于新的示例数据库。集成到已有生产应用时,应使用您正常的前向数据库迁移流程,并关闭自动数据库结构初始化。
使用 Vue 组件#
登录后请求 /api/drmx/videos/VIDEO_ID。从 web-components 复制 DrmxPlayer.vue 和 runtime.mjs,再将响应中的 contentId、contentType 和 sessionEndpoint 传给组件。组件会自动加载指定版本的 Shaka 和 Universal Player 脚本,并在切换视频时替换旧播放器。播放器和经过身份验证的会话接口必须位于同一源。
接口 URL 包含 Spring Security 的 CSRF token,传给组件时请保留该参数。后端会在调用 DRM-X 前重新检查视频映射和访问权限。本地 Java 测试覆盖策略构造、报名权限、账号隔离和授权撤销。
DRM-X 6.0