SpringSecurityOAuth2(8) swagger2 集成OAuth2

GitHub地址

码云地址

swagger是一款优雅的接口api展示工具,在这里我们具体不展开讲解,有兴趣的自行百度。 该篇文章主要讲解的是如何集成OAuth2的验证即在请求中添加token,验证接口是否具有权限。

方式一:在每个请求上加一个Authorization 窗口自己手动输入token:

1/** 2 * @Description Swagger api 配置 3 * @Author wwz 4 * @Date 2019/08/05 5 */ 6@Configuration 7@EnableSwagger2 8public class SwaggerConfig2 { 9 10 @Value("${swagger.is.enable}") 11 private boolean SWAGGER_IS_ENABLE; //是否激活开关,在application.yml中配置注入 12 13 @Bean 14 public Docket docket() { 15 //添加head参数配置start 16 ParameterBuilder tokenPar = new ParameterBuilder(); 17 List<Parameter> pars = new ArrayList<>(); 18 tokenPar.name("Authorization").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); 19 pars.add(tokenPar.build()); 20 return new Docket(DocumentationType.SWAGGER_2) 21 .enable(SWAGGER_IS_ENABLE) 22 .apiInfo(apiInfo()) 23 .select() 24 .apis(RequestHandlerSelectors.basePackage("com.wwz.frame.controller")) 25 .paths(PathSelectors.any()) 26 .build() 27 .globalOperationParameters(pars);//注意这里; 28 } 29 30 private ApiInfo apiInfo() { 31 return new ApiInfoBuilder() 32 // 页面标题 33 .title("OAuth2权限管理API文档") 34 .contact(new Contact("wwz", "", "wwzwtf@qq.com")) 35 .description("OAuth2维护文档") 36 .version("1.0") 37 .extensions(Collections.emptyList()) 38 .build(); 39 } 40}

效果截图:

方式二:配置application.yml文件 设置好token登录的地址,是否启用swagger,新建配置文件

1/** 2 * @Description Swagger api 配置 模式二:增加登录 3 * @Author wwz 4 * @Date 2019/08/05 5 */ 6@Configuration 7@EnableSwagger2 8public class SwaggerConfig { 9 10 11 @Value("${swagger.is.enable}") 12 private boolean SWAGGER_IS_ENABLE; //是否激活开关,在application.yml中配置注入 13 @Value("${swagger.auth.server}") 14 private String AUTH_SERVER; 15 @Value("${swagger.service.name}") 16 private String SERVICE_NAME; 17 @Bean 18 public Docket docket() { 19 return new Docket(DocumentationType.SWAGGER_2) 20 .enable(SWAGGER_IS_ENABLE) 21 .apiInfo(apiInfo()) 22 .select() 23 .apis(RequestHandlerSelectors.basePackage("com.wwz.frame.controller")) 24 .paths(PathSelectors.any()) 25 .build() 26// .pathMapping(SERVICE_NAME) 27 .securitySchemes(Collections.singletonList(securityScheme())) 28 .securityContexts(Collections.singletonList(securityContext())); 29 } 30 31 private ApiInfo apiInfo() { 32 return new ApiInfoBuilder() 33 // 页面标题 34 .title("OAuth2权限管理API文档") 35 .contact(new Contact("wwz", "", "wwzwtf@qq.com")) 36 .description("OAuth2维护文档") 37 .version("1.0") 38 .extensions(Collections.emptyList()) 39 .build(); 40 } 41 42 /** 43 * 这个类决定了你使用哪种认证方式,我这里使用密码模式 44 */ 45 private SecurityScheme securityScheme() { 46 GrantType grantType = new ResourceOwnerPasswordCredentialsGrant(AUTH_SERVER); 47 48 return new OAuthBuilder() 49 .name("OAuth2") 50 .grantTypes(Collections.singletonList(grantType)) 51 .scopes(Arrays.asList(scopes())) 52 .build(); 53 } 54 55 /** 56 * 这里设置 swagger2 认证的安全上下文 57 */ 58 private SecurityContext securityContext() { 59 return SecurityContext.builder() 60 .securityReferences(Collections.singletonList(new SecurityReference("OAuth2", scopes()))) 61 .forPaths(PathSelectors.any()) 62 .build(); 63 } 64 65 /** 66 * 这里是写允许认证的scope 67 */ 68 private AuthorizationScope[] scopes() { 69 return new AuthorizationScope[]{ 70 }; 71 } 72}

在MySecurityResourceServerConfig 放行swagger相关。

界面截图:

登录截图:

测试:

swagger 整合OAuth2完成。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SpringSecurityOAuth2(9) feign 微服务间调用 token验证

GitHub地址(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2Fweizongwu%2FSpringCloudOAuth2SpringSecurityFrame.git"项目地址")码云地址(https://gitee.com/wujishu/

SpringSecurityOAuth2(5)自定义登录登出

GitHub地址(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2Fweizongwu%2FSpringCloudOAuth2SpringSecurityFrame.git"项目地址")码云地址(https://gitee.com/wujishu/

SpringSecurityOAuth2(3)自定义token信息

GitHub地址(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2Fweizongwu%2FSpringCloudOAuth2SpringSecurityFrame.git"项目地址")码云地址(https://gitee.com/wujishu/