feat(video): 新建 viewsh-module-video 服务模块骨架

新增视频管理模块,用于后续迁移 WVP-Platform(GB28181 视频监控平台)。
- viewsh-module-video-api: 契约层(Feign RPC 接口、枚举、错误码)
- viewsh-module-video-server: 业务层(端口 48093)
- 网关路由: video-admin-api / video-app-api
- SecurityConfiguration: 放行 Swagger/Actuator/Druid/RPC

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
lzh
2026-04-05 16:48:40 +08:00
parent 65ad3f35e5
commit 948d2c6a41
14 changed files with 1486 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
package com.viewsh.module.video;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Video 视频模块的启动类
*/
@SpringBootApplication
public class VideoServerApplication {
public static void main(String[] args) {
SpringApplication.run(VideoServerApplication.class, args);
}
}

View File

@@ -0,0 +1,39 @@
package com.viewsh.module.video.framework.security.config;
import com.viewsh.framework.security.config.AuthorizeRequestsCustomizer;
import com.viewsh.module.video.enums.ApiConstants;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer;
/**
* Video 模块的 Security 配置
*/
@Configuration("videoSecurityConfiguration")
public class SecurityConfiguration {
@Bean("videoAuthorizeRequestsCustomizer")
public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() {
return new AuthorizeRequestsCustomizer() {
@Override
public void customize(AuthorizeHttpRequestsConfigurer<HttpSecurity>.AuthorizationManagerRequestMatcherRegistry registry) {
// Swagger 接口文档
registry.requestMatchers("/v3/api-docs/**").permitAll()
.requestMatchers("/webjars/**").permitAll()
.requestMatchers("/swagger-ui").permitAll()
.requestMatchers("/swagger-ui/**").permitAll();
// Spring Boot Actuator 的安全配置
registry.requestMatchers("/actuator").anonymous()
.requestMatchers("/actuator/**").anonymous();
// Druid 监控
registry.requestMatchers("/druid/**").anonymous();
// RPC 服务的安全配置
registry.requestMatchers(ApiConstants.PREFIX + "/**").permitAll();
}
};
}
}