648540858
2023-12-26 7c07ae9421850650b9da6d453c498cc3049a83a3
修复文档页面不可用BUG,支持设置认证消息头来方便调用其他接口
5个文件已修改
34 ■■■■■ 已修改文件
pom.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/conf/SpringDocConfig.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/conf/security/JwtUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -163,21 +163,16 @@
        </dependency>
        <!--在线文档 -->
        <!--在线文档 -->
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.7.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.yaml</groupId>
                    <artifactId>snakeyaml</artifactId>
                </exclusion>
            </exclusions>
            <version>1.6.10</version>
        </dependency>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>2.2</version>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-security</artifactId>
            <version>1.6.10</version>
        </dependency>
        <dependency>
src/main/java/com/genersoft/iot/vmp/conf/SpringDocConfig.java
@@ -1,9 +1,12 @@
package com.genersoft.iot.vmp.conf;
import com.genersoft.iot.vmp.conf.security.JwtUtils;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.core.annotation.Order;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.beans.factory.annotation.Value;
@@ -26,10 +29,14 @@
        contact.setName("pan");
        contact.setEmail("648540858@qq.com");
        return new OpenAPI()
                .components(new Components()
                        .addSecuritySchemes(JwtUtils.HEADER, new SecurityScheme()
                                .type(SecurityScheme.Type.HTTP)
                                .bearerFormat("JWT")))
                .info(new Info().title("WVP-PRO 接口文档")
                        .contact(contact)
                        .description("开箱即用的28181协议视频平台")
                        .version("v2.0")
                        .version("v3.1.0")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")));
    }
src/main/java/com/genersoft/iot/vmp/conf/security/JwtUtils.java
@@ -28,7 +28,7 @@
    private static final Logger logger = LoggerFactory.getLogger(JwtUtils.class);
    private static final String HEADER = "access-token";
    public static final String HEADER = "access-token";
    private static final String AUDIENCE = "Audience";
src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java
@@ -68,6 +68,8 @@
            matchers.add("/");
            matchers.add("/#/**");
            matchers.add("/static/**");
            matchers.add("/swagger-ui.html");
            matchers.add("/swagger-ui/");
            matchers.add("/index.html");
            matchers.add("/doc.html");
            matchers.add("/webjars/**");
@@ -77,6 +79,7 @@
            matchers.add("/api/device/query/snap/**");
            matchers.add("/record_proxy/*/**");
            matchers.add("/api/emit");
            matchers.add("/favicon.ico");
            // 可以直接访问的静态数据
            web.ignoring().antMatchers(matchers.toArray(new String[0]));
        }
@@ -113,7 +116,7 @@
                .authorizeRequests()
                .requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
                .antMatchers(userSetting.getInterfaceAuthenticationExcludes().toArray(new String[0])).permitAll()
                .antMatchers("/api/user/login", "/index/hook/**").permitAll()
                .antMatchers("/api/user/login", "/index/hook/**", "/swagger-ui/**", "/doc.html").permitAll()
                .anyRequest().authenticated()
                // 异常处理器
                .and()
src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java
@@ -14,6 +14,7 @@
import com.github.pagehelper.PageInfo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
@@ -95,7 +96,7 @@
    @PostMapping("/add")
    @Operation(summary = "添加用户")
    @Operation(summary = "添加用户", security = @SecurityRequirement(name = JwtUtils.HEADER))
    @Parameter(name = "username", description = "用户名", required = true)
    @Parameter(name = "password", description = "密码(未md5加密的密码)", required = true)
    @Parameter(name = "roleId", description = "角色ID", required = true)