溫馨提示×

Linux下Swagger如何實現接口權限控制

小樊
43
2025-07-25 06:31:51
欄目: 智能運維

在Linux環境下,使用Swagger實現接口權限控制通常涉及以下幾個步驟:

  1. 集成Spring Security

    • 首先,確保你的Spring Boot項目中已經集成了Spring Security。
    • pom.xml中添加Spring Security依賴:
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-security</artifactId>
      </dependency>
      
  2. 配置Spring Security

    • 創建一個Spring Security配置類,例如SecurityConfig.java
      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.configuration.EnableWebSecurity;
      import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
      import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
      import org.springframework.security.crypto.password.PasswordEncoder;
      
      @Configuration
      @EnableWebSecurity
      public class SecurityConfig extends WebSecurityConfigurerAdapter {
      
          @Override
          protected void configure(HttpSecurity http) throws Exception {
              http
                  .csrf().disable()
                  .authorizeRequests()
                  .antMatchers("/swagger-ui/**", "/v2/api-docs/**").authenticated() // 需要認證的URL
                  .anyRequest().permitAll() // 其他請求允許訪問
                  .and()
                  .httpBasic(); // 使用HTTP Basic認證
          }
      
          @Bean
          public PasswordEncoder passwordEncoder() {
              return new BCryptPasswordEncoder();
          }
      }
      
  3. 配置Swagger

    • 確保你的Swagger配置類已經正確配置,例如SwaggerConfig.java
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import springfox.documentation.builders.PathSelectors;
      import springfox.documentation.builders.RequestHandlerSelectors;
      import springfox.documentation.spi.DocumentationType;
      import springfox.documentation.spring.web.plugins.Docket;
      import springfox.documentation.swagger2.annotations.EnableSwagger2;
      
      @Configuration
      @EnableSwagger2
      public class SwaggerConfig {
      
          @Bean
          public Docket api() {
              return new Docket(DocumentationType.SWAGGER_2)
                      .select()
                      .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                      .paths(PathSelectors.any())
                      .build();
          }
      }
      
  4. 測試權限控制

    • 啟動你的Spring Boot應用。
    • 訪問Swagger UI界面(通常是http://localhost:8080/swagger-ui.html)。
    • 嘗試訪問需要認證的API,例如/swagger-ui/**/v2/api-docs/**,系統會提示你輸入用戶名和密碼。
    • 輸入正確的用戶名和密碼后,你應該能夠訪問這些API。

通過以上步驟,你可以在Linux環境下使用Swagger實現接口權限控制。Spring Security提供了強大的認證和授權功能,可以輕松地與Swagger集成,確保只有經過認證的用戶才能訪問受保護的API。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女