Swagger2 配置

1. 每个请求都需要换取key:

@Bean
	public Docket createRestApi() {
		//添加head参数start
    	ParameterBuilder appId = new ParameterBuilder();
    	ParameterBuilder tokenCode = new ParameterBuilder();
    	List<Parameter> pars = new ArrayList<Parameter>();
    	appId.name("AppId").description("客户端编号").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
    	tokenCode.name("AppToken").description("Token令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
    	pars.add(appId.build());
    	pars.add(tokenCode.build());
		return new Docket(DocumentationType.SWAGGER_2)
			.select()
			.apis(RequestHandlerSelectors.basePackage("com.inuo.project.tool.swagger"))
			.paths(PathSelectors.any()).build()
			.globalOperationParameters(pars)
			// 详细定制
			.apiInfo(apiInfo());
	}

	/**
	 * 添加摘要信息
	 */
	private ApiInfo apiInfo() {
		// 用ApiInfoBuilder进行定制
		return new ApiInfoBuilder().title("标题:XX管理系统_接口文档").description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
			.contact(new Contact(inuoConfig.getName(), null, null)).version("版本号:" + inuoConfig.getVersion())
			.build();
	}

  

2. 全局Key

@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).
                useDefaultResponseMessages(false)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.regex("^(?!auth).*$"))
                .build()
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts())
                ;
    }
    private List<ApiKey> securitySchemes() {
    	List<ApiKey> list = new ArrayList<ApiKey>();
    	ApiKey ak = new ApiKey("Authorization", "Authorization", "header");
    	list.add(ak);
        return list;
    }
    private List<SecurityContext> securityContexts() {
    	List<SecurityContext> list = new ArrayList<SecurityContext>();
    	SecurityContext sc = SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("^(?!auth).*$")).build();
        list.add(sc);
    	return list;
    }
    
    List<SecurityReference> defaultAuth() {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        List<SecurityReference> list = new ArrayList<SecurityReference>();
        SecurityReference sr =  new SecurityReference("Authorization", authorizationScopes);
        list.add(sr);
        return list;
    }

  

posted @ 2018-09-08 11:10  eRrsr  阅读(1038)  评论(0编辑  收藏  举报