2017-06-08 23 views
0

私はSwagger UIを使用しており、対話式のRESTエンドポイントの表現に使用しています。ただし、Swagger UIには、URLを知っているすべての人がアクセスできます。ユーザーログインで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> 

答えて

1

いいえ、それは怖いのではありません。通常のWebSecurityConfigurerAdapterを使用して、swagger-ui.html URLへのアクセス権を制御します。セキュリティ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に基​​づいてセキュリティを行うためにwan't場合は、それらが関与していた場合は、コントローラベースのセキュリティ、およびお使いのサービスのセキュリティを同じくらい行うことができますが、そうでないのですこの場合。セキュリティはアプリケーション固有のものです。私はこのように言うことはできません。あなたはSpring Securityをまったく使用したくないかもしれないし、自分のことをやっているだけで、あなたの人生を楽にするもう一つのフレームワークです。あなたは現在のログインしているユーザービューのリゾルバでswagger-ui.htmlビューを開き、Unauthorized例外などをスローします。

+0

お願いしますか? – Mercer