在Linux系統中,Swagger權限管理需結合Spring Security實現,核心策略如下:
spring-boot-starter-security,創建配置類繼承WebSecurityConfigurerAdapter,定義訪問控制規則。hasRole()或hasAuthority()限制特定角色訪問Swagger UI或API端點,例如僅ADMIN角色可訪問文檔。antMatchers()指定Swagger相關路徑(如/swagger-ui/**、/v2/api-docs/**)的訪問權限。示例代碼(基礎認證配置):
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/swagger-ui/**", "/v2/api-docs/**").authenticated()
.anyRequest().permitAll()
.and()
.httpBasic(); // 基礎認證
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(); // 密碼加密
}
}
以上策略需結合具體業務場景調整,生產環境建議使用數據庫存儲用戶信息、配置HTTPS及更復雜的權限規則。