# Java、Spring Boot 与 Vue

通过 Spring Security 和服务器端内容目录集成受保护视频，再使用 Vue 展示播放器。

播放授权的流程

您的后端决定谁可以观看。DRM-X 提供播放授权，播放器使用该授权请求 DRM 许可证。

- 01**观看用户**

登录您的服务并请求播放视频。

- 02**您的后端**

检查用户的购买记录、订阅状态或其他观看权限。

- 03**DRM-X**

应用所选播放规则，返回播放配置和授权信息。

- 04**播放器**

使用返回的授权信息，请求播放所需的 DRM 许可证。

您的后端判断用户是否有权观看，DRM-X 执行签名授权中的播放策略。加密媒体与 DRM 许可证通过各自的服务传送给播放器。

## 构建与配置后端[#](#run)



示例使用 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 记录。



[下载第三方平台集成源码](https://drm-x6-cdn.1aicloud.com/drmx-frameworks-1.3.0-preview.2-f4ee10f26cdf.zip)





## 连接内容与访问规则[#](#catalog)



在 drmx_video 中填写已发布的 Content ID、内容类型、策略和启用状态。drmx_access 将用户名与具体视频绑定，并记录开始时间、到期时间和撤销状态。VideoRepository.authorized 会在每次请求时检查这些记录。您可以根据已有的课程或订阅表调整查询。



提供的数据库结构仅用于新的示例数据库。集成到已有生产应用时，应使用您正常的前向数据库迁移流程，并关闭自动数据库结构初始化。





## 使用 Vue 组件[#](#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 测试覆盖策略构造、报名权限、账号隔离和授权撤销。

<!-- Canonical: https://docs.drm-x.com/zh-Hans/integrations/java-vue -->
<!-- Language: zh-Hans -->
