swagger2如何集成OAuth2,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
桐城網站建設公司創(chuàng)新互聯(lián)公司,桐城網站設計制作,有大型網站制作公司豐富經驗。已為桐城成百上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的桐城做網站的公司定做!
GitHub地址
碼云地址
swagger是一款優(yōu)雅的接口api展示工具,在這里我們具體不展開講解,有興趣的自行百度。 該篇文章主要講解的是如何集成OAuth3的驗證即在請求中添加token,驗證接口是否具有權限。
方式一:在每個請求上加一個Authorization 窗口自己手動輸入token:
/** * @Description Swagger api 配置 * @Author wwz * @Date 2019/08/05 */ @Configuration @EnableSwagger2 public class SwaggerConfig2 { @Value("${swagger.is.enable}") private boolean SWAGGER_IS_ENABLE; //是否激活開關,在application.yml中配置注入 @Bean public Docket docket() { //添加head參數配置start ParameterBuilder tokenPar = new ParameterBuilder(); List<Parameter> pars = new ArrayList<>(); tokenPar.name("Authorization").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); pars.add(tokenPar.build()); return new Docket(DocumentationType.SWAGGER_2) .enable(SWAGGER_IS_ENABLE) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.wwz.frame.controller")) .paths(PathSelectors.any()) .build() .globalOperationParameters(pars);//注意這里; } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 頁面標題 .title("OAuth3權限管理API文檔") .contact(new Contact("wwz", "", "wwzwtf@qq.com")) .description("OAuth3維護文檔") .version("1.0") .extensions(Collections.emptyList()) .build(); } }
效果截圖:
方式二:配置application.yml文件 設置好token登錄的地址,是否啟用swagger,新建配置文件
/** * @Description Swagger api 配置 模式二:增加登錄 * @Author wwz * @Date 2019/08/05 */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Value("${swagger.is.enable}") private boolean SWAGGER_IS_ENABLE; //是否激活開關,在application.yml中配置注入 @Value("${swagger.auth.server}") private String AUTH_SERVER; @Value("${swagger.service.name}") private String SERVICE_NAME; @Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .enable(SWAGGER_IS_ENABLE) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.wwz.frame.controller")) .paths(PathSelectors.any()) .build() // .pathMapping(SERVICE_NAME) .securitySchemes(Collections.singletonList(securityScheme())) .securityContexts(Collections.singletonList(securityContext())); } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 頁面標題 .title("OAuth3權限管理API文檔") .contact(new Contact("wwz", "", "wwzwtf@qq.com")) .description("OAuth3維護文檔") .version("1.0") .extensions(Collections.emptyList()) .build(); } /** * 這個類決定了你使用哪種認證方式,我這里使用密碼模式 */ private SecurityScheme securityScheme() { GrantType grantType = new ResourceOwnerPasswordCredentialsGrant(AUTH_SERVER); return new OAuthBuilder() .name("OAuth3") .grantTypes(Collections.singletonList(grantType)) .scopes(Arrays.asList(scopes())) .build(); } /** * 這里設置 swagger2 認證的安全上下文 */ private SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(Collections.singletonList(new SecurityReference("OAuth3", scopes()))) .forPaths(PathSelectors.any()) .build(); } /** * 這里是寫允許認證的scope */ private AuthorizationScope[] scopes() { return new AuthorizationScope[]{ }; } }
在MySecurityResourceServerConfig 放行swagger相關。
界面截圖:
登錄截圖:
測試:
swagger 整合OAuth2完成。
看完上述內容,你們掌握swagger2如何集成OAuth2的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網頁題目:swagger2如何集成OAuth2
文章URL:http://chinadenli.net/article20/ppssjo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供Google、靜態(tài)網站、定制網站、建站公司、移動網站建設、外貿建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)