centos

如何在CentOS上为Swagger添加身份验证和授权

小樊
91
2025-02-09 07:37:33
栏目: 智能运维

在CentOS上为Swagger添加身份验证和授权,通常涉及以下几个步骤:

  1. 安装必要的软件包: 确保你已经安装了Java、Maven和Swagger。你可以使用以下命令来安装这些软件包:

    sudo yum install java-1.8.0-openjdk-devel
    sudo yum install maven
    
  2. 下载并编译Swagger项目: 你可以从Swagger的GitHub仓库下载最新的Swagger项目,然后进行编译。

    git clone https://github.com/swagger-api/swagger-ui.git
    cd swagger-ui
    mvn clean package
    
  3. 配置Swagger UI: 编译完成后,你可以在target目录下找到Swagger UI的静态文件。你需要将这些文件复制到一个Web服务器上,例如Apache或Nginx。

  4. 添加身份验证和授权: 你可以使用Spring Security来为Swagger添加身份验证和授权。以下是一个简单的示例:

    • 添加依赖: 在你的项目中添加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>
      
    • 配置Spring Security: 创建一个配置类来设置Spring Security。

      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 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 extends WebSecurityConfigurerAdapter {
      
          @Override
          protected void configure(HttpSecurity http) throws Exception {
              http.authorizeRequests()
                  .antMatchers("/swagger-ui/**").authenticated()
                  .anyRequest().permitAll()
                  .and()
                  .formLogin()
                  .loginPage("/login")
                  .permitAll()
                  .and()
                  .logout()
                  .permitAll();
          }
      
          @Bean
          public Docket api() {
              return new Docket(DocumentationType.SWAGGER_2)
                  .select()
                  .apis(RequestHandlerSelectors.basePackage("com.example.demo"))
                  .paths(PathSelectors.any())
                  .build();
          }
      }
      
    • 创建登录页面: 创建一个简单的登录页面(例如src/main/resources/static/login.html)。

      <!DOCTYPE html>
      <html>
      <head>
          <title>Login</title>
      </head>
      <body>
          <h2>Login</h2>
          <form action="/login" method="post">
              <label for="username">Username:</label>
              <input type="text" id="username" name="username"><br><br>
              <label for="password">Password:</label>
              <input type="password" id="password" name="password"><br><br>
              <input type="submit" value="Login">
          </form>
      </body>
      </html>
      
    • 配置Spring Boot应用程序: 确保你的Spring Boot应用程序能够正确处理登录页面和Swagger API文档。

      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      public class DemoApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(DemoApplication.class, args);
          }
      }
      
  5. 运行应用程序: 启动你的Spring Boot应用程序,并访问http://localhost:8080/swagger-ui/。你应该会看到一个带有身份验证和授权的Swagger UI界面。

通过以上步骤,你可以在CentOS上为Swagger添加身份验证和授权。

0
看了该问题的人还看了