2017-05-03 15 views
0

私はApplicationサブクラスとbeanConfigオブジェクトを使ってswaggerを構成しました。私のsecurityDefinitionは、すべてのサービスレイヤーの認証を許可するためにde api_keyフィールドを表示するようswagger uiに許可しなければなりません。swagger securityDefinition with Resteasy

BeanConfig beanConfig = new BeanConfig(); 
    beanConfig.setSchemes(new String[] { "http" }); 
    beanConfig.setHost("192.168.4.9:8080"); 
    beanConfig.setBasePath("/cjppa/rest"); 
    beanConfig.setResourcePackage("com.cjppa.fpuna.backend.resources"); 
    beanConfig.setScan(true); 
    beanConfig.setPrettyPrint(true); 

    io.swagger.models.Info info = new io.swagger.models.Info(); 
    io.swagger.models.Contact contact = new io.swagger.models.Contact(); 
    info.setVersion("1.0"); 
    beanConfig.setInfo(info); 

    io.swagger.models.auth.ApiKeyAuthDefinition apikey = new 
    io.swagger.models.auth.ApiKeyAuthDefinition(); 
    apikey.setName("x-token"); 
    apikey.setIn(In.HEADER); 


    Swagger swagger = new Swagger().info(info); 
    swagger.securityDefinition("api_key", apikey); 

    beanConfig.configure(swagger); 

期待API_KEYは、 "X-トークン" HTTPヘッダ

+0

ペットショップの例ブートストラップサーブレットから抽出された、私が追加された新しいSwaggerContextService()updateSwagger(闊歩)。最後に –

答えて

0

あなたはafterScan方法でio.swagger.jaxrs.config.ReaderListener、addSecurityを実装することができますしています。例えば:

@SwaggerDefinition(securityDefinition = @SecurityDefinition(apiKeyAuthDefinitions = { 
    @ApiKeyAuthDefinition(in = ApiKeyAuthDefinition.ApiKeyLocation.HEADER, key = "token", name = "E-token"), 
    @ApiKeyAuthDefinition(in = ApiKeyAuthDefinition.ApiKeyLocation.HEADER, key = "userId", name = "E-userId"), 
    @ApiKeyAuthDefinition(in = ApiKeyAuthDefinition.ApiKeyLocation.HEADER, key = "corpId", name = "E-corpId") })) 
public class SwaggerCustomizeDefinition implements ReaderListener { 

    @Override 
    public void beforeScan(Reader reader, Swagger swagger) { 

    } 

    @Override 
    public void afterScan(Reader reader, Swagger swagger) { 
     swagger.addSecurity(new SecurityRequirement().requirement("token")); 
     swagger.addSecurity(new SecurityRequirement().requirement("userId")); 
     swagger.addSecurity(new SecurityRequirement().requirement("corpId")); 
    } 

}