diff --git a/spring-boot-swagger/src/main/java/com/jnssd/config/SwaggerConfig.java b/spring-boot-swagger/src/main/java/com/jnssd/config/SwaggerConfig.java index d6e2afc..5f52ee8 100644 --- a/spring-boot-swagger/src/main/java/com/jnssd/config/SwaggerConfig.java +++ b/spring-boot-swagger/src/main/java/com/jnssd/config/SwaggerConfig.java @@ -2,6 +2,7 @@ package com.jnssd.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.AntPathMatcher; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.OAuthBuilder; import springfox.documentation.builders.PathSelectors; @@ -51,7 +52,6 @@ public class SwaggerConfig { } - public List initSecuritySchemeList() { List list = new ArrayList<>(); list.add(securitySchemeBasicAuth()); @@ -113,7 +113,16 @@ public class SwaggerConfig { private SecurityContext securityContext() { List list = new ArrayList<>(); Arrays.stream(securitySchemeNames).forEach(s -> list.add(new SecurityReference(s, new AuthorizationScope[0]))); - return SecurityContext.builder().securityReferences(list).build(); + return SecurityContext.builder().operationSelector(operationContext -> { + System.out.println("operationContext" + operationContext); + // 除了get方法其他方法都要校验 + // return !operationContext.httpMethod().name().equals("GET"); + + // 通过地址模糊匹配 + AntPathMatcher pathMatcher = new AntPathMatcher(); + String path = operationContext.requestMappingPattern(); + return pathMatcher.match("/menu/**", path) || pathMatcher.match("/user/**", path); + }).securityReferences(list).build(); } private List scopes() { @@ -123,6 +132,7 @@ public class SwaggerConfig { list.add(new AuthorizationScope("admin_scope", "Grants read write and delete access")); return list; } + @Bean public SecurityConfiguration security() { return SecurityConfigurationBuilder.builder().clientId("").clientSecret("").realm("*").appName("").scopeSeparator("").useBasicAuthenticationWithAccessCodeGrant(false).build();