在Linux系统中,Swagger本身不直接提供权限管理功能,但你可以通过以下几种方法来实现权限管理:
pom.xml文件中添加Spring Security和Swagger的依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/swagger-ui.html", "/webjars/**", "/swagger-resources/**", "/v2/api-docs").authenticated() .anyRequest().permitAll() .and() .httpBasic(); } @Bean public UserDetailsService userDetailsService() { UserDetails user = User.withDefaultPasswordEncoder() .username("user") .password("password") .roles("USER") .build(); return new InMemoryUserDetailsManager(user); } } @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.example.demo")) .paths(PathSelectors.any()) .build() .securitySchemes(Arrays.asList(securityScheme())) .securityContexts(Arrays.asList(securityContext())); } private SecurityScheme securityScheme() { return new BasicAuth("user", "password"); } private SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.any()) .build(); } List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; return Arrays.asList(new SecurityReference("Basic Auth", authorizationScopes)); } } components: securitySchemes: oauth2: type: "oauth2" scheme: "bearer" flow: "password" authorizationUrl: "https://example.com/oauth2/authorize" tokenUrl: "https://example.com/oauth2/token" swagger-security-example,提供了在Swagger文档中集成OAuth 2.0和角色权限的示例。通过上述方法,你可以在Linux系统中有效地控制Swagger的权限,确保只有授权用户才能访问特定的API文档和操作。