
本文介绍如何在Linux环境下为Swagger API文档添加权限控制,确保API安全。 这需要结合Spring Security和Swagger进行配置。
步骤一:添加依赖项
首先,确保你的项目包含必要的Spring Security和Swagger依赖。使用Maven的pom.xml文件,添加如下依赖:
<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 org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@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(); // 使用HTTP Basic认证
}
@Bean
@Override
public UserDetailsService userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}此配置要求访问Swagger UI和API文档需要身份验证。
步骤三:配置Swagger
创建一个Swagger配置类,启用Swagger并配置API文档扫描路径:
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();
}
}记得将"com.example.demo"替换为你的Controller包的实际路径。
步骤四:运行应用并访问Swagger UI
启动你的Spring Boot应用,然后在浏览器中访问http://your-server-address:port/swagger-ui.html。 你将需要提供用户名和密码(本例中为"user"和"password")进行身份验证。
总结: 通过以上步骤,你成功地在Linux环境下为Swagger添加了基本的权限控制。 记住在生产环境中使用更安全的认证方式和用户管理机制,例如数据库用户存储和更强大的密码加密算法。 请根据你的实际项目调整包路径和安全配置。
以上就是如何在Linux上配置Swagger的权限控制的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号