diff --git a/libs/smiley-http-proxy-servlet-2.0.jar b/libs/smiley-http-proxy-servlet-2.0.jar new file mode 100644 index 000000000..876b56c61 Binary files /dev/null and b/libs/smiley-http-proxy-servlet-2.0.jar differ diff --git a/pom.xml b/pom.xml index afeb0aa7e..705f07b0f 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.18 + 3.3.5 com.genersoft @@ -56,6 +56,9 @@ ${project.build.directory}/asciidoc ${project.build.directory}/asciidoc/html ${project.build.directory}/asciidoc/pdf + + 17 + 17 @@ -121,7 +124,7 @@ org.mybatis.spring.boot mybatis-spring-boot-starter - 2.2.2 + 3.0.3 com.zaxxer @@ -196,25 +199,31 @@ org.springdoc - springdoc-openapi-ui - 1.6.10 + springdoc-openapi-starter-webmvc-ui + 2.5.0 + + + org.springdoc + springdoc-openapi-starter-webmvc-api + 2.5.0 org.springdoc springdoc-openapi-security - 1.6.10 + 1.8.0 com.github.xiaoymin - knife4j-springdoc-ui - 3.0.3 + knife4j-openapi3-jakarta-spring-boot-starter + 4.4.0 javax.validation validation-api + 2.0.1.Final @@ -300,7 +309,14 @@ org.mitre.dsmiley.httpproxy smiley-http-proxy-servlet - 1.12.1 + 2.0 + system + ${basedir}/libs/smiley-http-proxy-servlet-2.0.jar + + + org.apache.httpcomponents + httpclient + 4.5.14 @@ -380,7 +396,7 @@ org.springframework.boot spring-boot-maven-plugin - 2.7.2 + 3.3.1 true true @@ -392,8 +408,8 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 17 + 17 org.projectlombok @@ -418,7 +434,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 + 3.2.5 true diff --git a/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java b/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java index 9a7912d20..cabb8b2ca 100644 --- a/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java +++ b/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java @@ -13,10 +13,10 @@ import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.scheduling.annotation.EnableScheduling; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.SessionCookieConfig; -import javax.servlet.SessionTrackingMode; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.SessionCookieConfig; +import jakarta.servlet.SessionTrackingMode; import java.util.Collections; /** diff --git a/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java b/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java index a020fcb94..3a1fb917a 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/DynamicTask.java @@ -6,7 +6,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.time.Instant; import java.util.Date; import java.util.Map; diff --git a/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java index ab9c2d458..6fb02ac0d 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/ProxyServletConfig.java @@ -15,9 +15,9 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.util.ObjectUtils; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.ConnectException; diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java b/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java index ab85c458c..08827c564 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/AnonymousAuthenticationEntryPoint.java @@ -10,8 +10,8 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.charset.StandardCharsets; diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/JwtAuthenticationFilter.java b/src/main/java/com/genersoft/iot/vmp/conf/security/JwtAuthenticationFilter.java index 9a5701e2b..dc667daf2 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/JwtAuthenticationFilter.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/JwtAuthenticationFilter.java @@ -11,10 +11,10 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/JwtUtils.java b/src/main/java/com/genersoft/iot/vmp/conf/security/JwtUtils.java index 37a3307e5..ead227f3d 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/JwtUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/JwtUtils.java @@ -24,7 +24,7 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.io.BufferedReader; import java.io.File; import java.io.InputStream; @@ -231,7 +231,7 @@ public class JwtUtils implements InitializingBean { if (expirationTime != null) { // 判断是否即将过期, 默认剩余时间小于5分钟未即将过期 // 剩余时间 (秒) - long timeRemaining = LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)) - expirationTime.getValue(); + long timeRemaining = expirationTime.getValue() - LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8)); if (timeRemaining < 5 * 60) { jwtUser.setStatus(JwtUser.TokenStatus.EXPIRING_SOON); } else { diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/LogoutHandler.java b/src/main/java/com/genersoft/iot/vmp/conf/security/LogoutHandler.java index 48b40cbec..4809e3268 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/LogoutHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/LogoutHandler.java @@ -5,9 +5,9 @@ import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; import org.springframework.stereotype.Component; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java index 40809beeb..e94edc6a6 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java @@ -7,14 +7,15 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.CorsConfigurationSource; @@ -35,7 +36,7 @@ import java.util.List; @EnableGlobalMethodSecurity(prePostEnabled = true) @Order(1) @Slf4j -public class WebSecurityConfig extends WebSecurityConfigurerAdapter { +public class WebSecurityConfig { @Autowired private UserSetting userSetting; @@ -55,15 +56,13 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private JwtAuthenticationFilter jwtAuthenticationFilter; + @Bean + public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception { + return config.getAuthenticationManager(); + } - /** - * 配置认证方式 - * - * @param auth - * @throws Exception - */ - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { + @Bean + public AuthenticationProvider authProvider() { DaoAuthenticationProvider provider = new DaoAuthenticationProvider(); // 设置不隐藏 未找到用户异常 provider.setHideUserNotFoundExceptions(true); @@ -71,11 +70,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { provider.setUserDetailsService(userDetailsService); // 设置密码加密算法 provider.setPasswordEncoder(passwordEncoder()); - auth.authenticationProvider(provider); + return provider; } - @Override - protected void configure(HttpSecurity http) throws Exception { + @Bean + public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { List defaultExcludes = new ArrayList<>(); defaultExcludes.add("/"); defaultExcludes.add("/#/**"); @@ -101,33 +100,29 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { defaultExcludes.add("/api/device/query/snap/**"); defaultExcludes.add("/index/hook/abl/**"); - - if (userSetting.getInterfaceAuthentication() && !userSetting.getInterfaceAuthenticationExcludes().isEmpty()) { defaultExcludes.addAll(userSetting.getInterfaceAuthenticationExcludes()); } - http.headers().contentTypeOptions().disable() - .and().cors().configurationSource(configurationSource()) - .and().csrf().disable() - .sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - + http + .headers(headers -> headers.contentTypeOptions(contentType -> contentType.disable())) + .cors(cors -> cors.configurationSource(configurationSource())) + .csrf(csrf -> csrf.disable()) + .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)) + .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class) // 配置拦截规则 - .and() - .authorizeRequests() - .requestMatchers(CorsUtils::isPreFlightRequest).permitAll() - .antMatchers(defaultExcludes.toArray(new String[0])).permitAll() - .anyRequest().authenticated() + .authorizeHttpRequests(auth -> auth + .requestMatchers(CorsUtils::isPreFlightRequest).permitAll() + .requestMatchers(defaultExcludes.toArray(new String[0])).permitAll() + .anyRequest().authenticated() + ) // 异常处理器 - .and() - .exceptionHandling() - .authenticationEntryPoint(anonymousAuthenticationEntryPoint) - .and().logout().logoutUrl("/api/user/logout").permitAll() - .logoutSuccessHandler(logoutHandler) - ; - http.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); + .exceptionHandling(exception -> exception.authenticationEntryPoint(anonymousAuthenticationEntryPoint)) + .logout(logout -> logout.logoutUrl("/api/user/logout") + .permitAll() + .logoutSuccessHandler(logoutHandler)); + return http.build(); } CorsConfigurationSource configurationSource() { @@ -139,7 +134,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { if (userSetting.getAllowedOrigins() != null && !userSetting.getAllowedOrigins().isEmpty()) { corsConfiguration.setAllowCredentials(true); corsConfiguration.setAllowedOrigins(userSetting.getAllowedOrigins()); - }else { + } else { // 在SpringBoot 2.4及以上版本处理跨域时,遇到错误提示:当allowCredentials为true时,allowedOrigins不能包含特殊值"*"。 // 解决方法是明确指定allowedOrigins或使用allowedOriginPatterns。 corsConfiguration.setAllowCredentials(true); @@ -156,17 +151,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { /** * 描述: 密码加密算法 BCrypt 推荐使用 **/ - @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } - - /** - * 描述: 注入AuthenticationManager管理器 - **/ - @Override - @Bean - public AuthenticationManager authenticationManager() throws Exception { - return super.authenticationManager(); - } -} +} \ No newline at end of file diff --git a/src/main/java/com/genersoft/iot/vmp/conf/webLog/LogChannel.java b/src/main/java/com/genersoft/iot/vmp/conf/webLog/LogChannel.java index e999b2717..bd94fbc02 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/webLog/LogChannel.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/webLog/LogChannel.java @@ -2,13 +2,13 @@ package com.genersoft.iot.vmp.conf.webLog; import lombok.extern.slf4j.Slf4j; -import javax.websocket.*; -import javax.websocket.server.ServerEndpoint; +import jakarta.websocket.*; +import jakarta.websocket.server.ServerEndpoint; import java.io.IOException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; - @ServerEndpoint(value = "/channel/log") +@ServerEndpoint(value = "/channel/log") @Slf4j public class LogChannel { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java index bb6d2fd34..c13637a88 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/CommonChannelController.java @@ -31,7 +31,7 @@ import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.net.MalformedURLException; import java.net.URL; import java.util.List; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java index 9f4cebf3d..a0edfc2df 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/DeviceQuery.java @@ -31,8 +31,8 @@ import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/GBRecordController.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/GBRecordController.java index 4b9129af1..368538f68 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/GBRecordController.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/GBRecordController.java @@ -31,7 +31,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.async.DeferredResult; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.UUID; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/MediaController.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/MediaController.java index af2062b59..861594162 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/MediaController.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/MediaController.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; @Tag(name = "媒体流相关") diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlayController.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlayController.java index 4eb682156..d4b75bf3b 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlayController.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlayController.java @@ -37,7 +37,7 @@ import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.net.MalformedURLException; import java.net.URL; import java.util.List; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlaybackController.java index 3b1fb108c..fa6c86a7b 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlaybackController.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/PlaybackController.java @@ -33,7 +33,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.async.DeferredResult; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import javax.sip.InvalidArgumentException; import javax.sip.SipException; import java.net.MalformedURLException; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/SseController.java b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/SseController.java index 08cb88579..8e97295df 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/controller/SseController.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/controller/SseController.java @@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java index a5ffc1a1e..46c4cc14c 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/alarm/AlarmEventListener.java @@ -6,7 +6,7 @@ import org.jetbrains.annotations.NotNull; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * 报警事件监听器. diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078Controller.java b/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078Controller.java index 0c71d26a9..b5783ff1e 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078Controller.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078Controller.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * curl http://localhost:18080/api/jt1078/start/live/18864197066/1 diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index 95dcf514e..742548fbf 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -20,7 +20,7 @@ import org.springframework.context.ApplicationEventPublisher; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamListMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamListMsgListener.java index ca7048288..127b92a9c 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamListMsgListener.java +++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamListMsgListener.java @@ -13,7 +13,7 @@ import org.springframework.data.redis.connection.MessageListener; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/dto/RpcController.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/dto/RpcController.java index 4544812f5..30f8b885e 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/dto/RpcController.java +++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/dto/RpcController.java @@ -5,7 +5,7 @@ import com.genersoft.iot.vmp.conf.redis.RedisRpcConfig; import com.genersoft.iot.vmp.conf.redis.bean.RedisRpcClassHandler; import org.springframework.beans.factory.annotation.Autowired; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.lang.reflect.Method; public class RpcController { diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java index 7d651219e..a35b80683 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/controller/StreamProxyController.java @@ -23,7 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.net.MalformedURLException; import java.net.URL; import java.util.Map; diff --git a/src/main/java/com/genersoft/iot/vmp/streamPush/controller/StreamPushController.java b/src/main/java/com/genersoft/iot/vmp/streamPush/controller/StreamPushController.java index d29e1a128..5e979342c 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamPush/controller/StreamPushController.java +++ b/src/main/java/com/genersoft/iot/vmp/streamPush/controller/StreamPushController.java @@ -35,7 +35,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java index 291f7f9bd..303517465 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/cloudRecord/CloudRecordController.java @@ -29,8 +29,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java index 209dc6fb4..58f861ab8 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/log/LogController.java @@ -16,8 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java index 3ffc9e310..6098218c1 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java @@ -42,7 +42,7 @@ import oshi.hardware.HardwareAbstractionLayer; import oshi.hardware.NetworkIF; import oshi.software.os.OperatingSystem; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.File; import java.text.DecimalFormat; import java.util.*; diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java index 63ede950d..052572236 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java @@ -24,8 +24,8 @@ import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.security.sasl.AuthenticationException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.util.List; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b1e80b2ab..4bdc10d28 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -12,41 +12,42 @@ spring: max-request-size: 100MB cache: type: redis - # REDIS数据库配置 - redis: - # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1 - host: 10.59.3.218 - # [必须修改] 端口号 - port: 6379 - # [可选] 数据库 DB - database: 7 - # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 - password: ZhEnTuAi - # [可选] 超时时间 - timeout: 10000 - # mysql数据源 -# datasource: -# type: com.zaxxer.hikari.HikariDataSource -# driver-class-name: com.mysql.cj.jdbc.Driver -# url: jdbc:mysql://127.0.0.1:3306/wvp273数据库统合?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true -# username: root -# password: 12345678 - # h2数据库 + data: + # REDIS数据库配置 + redis: + # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1 + host: 127.0.0.1 + # [必须修改] 端口号 + port: 6379 + # [可选] 数据库 DB + database: 7 + # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 + password: luna + # [可选] 超时时间 + timeout: 10000 + # mysql数据源 datasource: - driver-class-name: org.h2.Driver - url: jdbc:h2:mem:wvp - username: sa + type: com.zaxxer.hikari.HikariDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/wvp273数据库统合?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true + username: root password: 12345678 - sql: - init: - # 启动时仅初始化内置的数据库,例如h2:mem - mode: embedded - schema-locations: file:数据库/2.7.4-h2/h2-schema.sql - data-locations: file:数据库/2.7.4-h2/h2-data.sql -# # h2数据库控制台,请注意仅在测试环境下使用! -# h2: -# console: -# enabled: true + # h2数据库 + # datasource: + # driver-class-name: org.h2.Driver + # url: jdbc:h2:mem:wvp + # username: sa + # password: 12345678 + # sql: + # init: + # # 启动时仅初始化内置的数据库,例如h2:mem + # mode: embedded + # schema-locations: file:数据库/2.7.4-h2/h2-schema.sql + # data-locations: file:数据库/2.7.4-h2/h2-data.sql + # # h2数据库控制台,请注意仅在测试环境下使用! + # h2: + # console: + # enabled: true #[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 server: port: 18080 diff --git a/src/main/resources/application-docker.yml b/src/main/resources/application-docker.yml index 17859a31b..c02cc1c32 100644 --- a/src/main/resources/application-docker.yml +++ b/src/main/resources/application-docker.yml @@ -6,18 +6,19 @@ spring: max-request-size: 100MB cache: type: redis - # REDIS数据库配置 - redis: - # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1 - host: ${REDIS_HOST:127.0.0.1} - # [必须修改] 端口号 - port: ${REDIS_PORT:6379} - # [可选] 数据库 DB - database: ${REDIS_DB:6} - # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 - password: ${REDIS_PWD:root} - # [可选] 超时时间 - timeout: 10000 + data: + # REDIS数据库配置 + redis: + # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1 + host: ${REDIS_HOST:127.0.0.1} + # [必须修改] 端口号 + port: ${REDIS_PORT:6379} + # [可选] 数据库 DB + database: ${REDIS_DB:6} + # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 + password: ${REDIS_PWD:root} + # [可选] 超时时间 + timeout: 10000 # [必选] jdbc数据库配置 datasource: type: com.zaxxer.hikari.HikariDataSource diff --git a/web/src/api/device.js b/web/src/api/device.js index c5e8d8486..a8bff4285 100644 --- a/web/src/api/device.js +++ b/web/src/api/device.js @@ -5,7 +5,7 @@ import request from '@/utils/request' export function queryDeviceSyncStatus(deviceId) { return request({ method: 'get', - url: `/api/device/query/${deviceId}/sync_status/` + url: `/api/device/query/${deviceId}/sync_status` }) }