我正在使用Swagger UI
进行交互式REST
端点表示。但是,知道其URL的每个人都可以访问Swagger UI
。是否有任何标准方法可以通过用户登录来限制Swagger UI
访问。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jersey2-jaxrs</artifactId>
<version>LATEST</version>
</dependency>
答案 0 :(得分:1)
不,这超出了招摇的关注范围。您只需使用普通WebSecurityConfigurerAdapter
来控制swagger-ui.html网址的权限即可。如果您使用不同的方法配置安全IMO,也会非常混乱。
实施例
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/swagger-ui.html")
.access("hasRole('ROLE_ADMIN')");
}
}
但是,如果您不想基于URL进行安全保护,那么您可以同样依赖基于控制器的安全性,以及服务的安全性(如果他们参与但是他们不在这个案例。安全性非常适用于应用程序。我不能这样说,你甚至可能根本不想使用Spring Security,只是做自己的事情,它只是让你的生活更轻松的另一个框架,你可以很容易访问swagger-ui.html
视图的视图解析器中的当前登录用户,并抛出未经授权的异常或类似内容。