配置Swagger下Swagger2的相关授权
This commit is contained in:
parent
266b402ba5
commit
73aec7279e
@ -1,128 +1,131 @@
|
|||||||
// package com.jnssd.config;
|
package com.jnssd.config;
|
||||||
//
|
|
||||||
// import io.swagger.annotations.ApiOperation;
|
import org.springframework.context.annotation.Bean;
|
||||||
// import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
||||||
// import org.springframework.context.annotation.Configuration;
|
import springfox.documentation.builders.ApiInfoBuilder;
|
||||||
// import springfox.documentation.builders.ApiInfoBuilder;
|
import springfox.documentation.builders.OAuthBuilder;
|
||||||
// import springfox.documentation.builders.OAuthBuilder;
|
import springfox.documentation.builders.PathSelectors;
|
||||||
// import springfox.documentation.builders.PathSelectors;
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
// import springfox.documentation.builders.RequestHandlerSelectors;
|
import springfox.documentation.oas.annotations.EnableOpenApi;
|
||||||
// import springfox.documentation.oas.annotations.EnableOpenApi;
|
import springfox.documentation.service.*;
|
||||||
// import springfox.documentation.service.*;
|
import springfox.documentation.spi.DocumentationType;
|
||||||
// import springfox.documentation.spi.DocumentationType;
|
import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||||
// import springfox.documentation.spi.service.contexts.SecurityContext;
|
import springfox.documentation.spring.web.plugins.Docket;
|
||||||
// import springfox.documentation.spring.web.plugins.Docket;
|
import springfox.documentation.swagger.web.ApiKeyVehicle;
|
||||||
// import springfox.documentation.swagger.web.ApiKeyVehicle;
|
import springfox.documentation.swagger.web.SecurityConfiguration;
|
||||||
// import springfox.documentation.swagger.web.SecurityConfiguration;
|
import springfox.documentation.swagger.web.SecurityConfigurationBuilder;
|
||||||
// import springfox.documentation.swagger.web.SecurityConfigurationBuilder;
|
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||||
// import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
|
||||||
//
|
import java.util.ArrayList;
|
||||||
// import java.util.ArrayList;
|
import java.util.Arrays;
|
||||||
// import java.util.Collections;
|
import java.util.Collections;
|
||||||
// import java.util.List;
|
import java.util.List;
|
||||||
//
|
|
||||||
// /**
|
/**
|
||||||
// * <h3>spring-boot-openapi</h3>
|
* <h3>spring-boot-openapi</h3>
|
||||||
// * <p></p>
|
* <p></p>
|
||||||
// *
|
*
|
||||||
// * @author zxj
|
* @author zxj
|
||||||
// * @since 2023-10-12 17:13:09
|
* @since 2023-10-12 17:13:09
|
||||||
// */
|
*/
|
||||||
// @Configuration
|
@Configuration
|
||||||
// @EnableSwagger2
|
@EnableSwagger2
|
||||||
// @EnableOpenApi
|
@EnableOpenApi
|
||||||
// public class SwaggerConfig {
|
public class SwaggerConfig {
|
||||||
//
|
|
||||||
// @Bean
|
private final String[] securitySchemeNames = {"ApiKey模式", "basicAuth模式", "oauth2的Password模式", "oauth2的authorization_code模式", "oauth2的implicit模式", "oauth2的clientCredentials模式"};
|
||||||
// public Docket api() {
|
|
||||||
// return new Docket(DocumentationType.SWAGGER_2)
|
|
||||||
// .apiInfo(apiInfo())
|
@Bean
|
||||||
// .select()
|
public Docket api() {
|
||||||
// // 扫描特定包
|
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
|
||||||
// // 扫描所有有注解的api,用这种方式更灵活
|
// 扫描特定包
|
||||||
// // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
// 扫描所有有注解的api,用这种方式更灵活
|
||||||
// //.apis(RequestHandlerSelectors.any())
|
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
||||||
// .apis(RequestHandlerSelectors.basePackage("com.jnssd"))
|
//.apis(RequestHandlerSelectors.any())
|
||||||
// .paths(PathSelectors.any())
|
.apis(RequestHandlerSelectors.basePackage("com.jnssd")).paths(PathSelectors.any()).build().securitySchemes(initSecuritySchemeList()).securityContexts(Collections.singletonList(securityContext()));
|
||||||
// .build()
|
}
|
||||||
// .securitySchemes(initSecuritySchemeList())
|
|
||||||
// .securityContexts(Collections.singletonList(securityContext()));
|
public ApiInfo apiInfo() {
|
||||||
// }
|
return new ApiInfoBuilder().title("Swagger项目测试").description("novel项目接口文档").build();
|
||||||
// public ApiInfo apiInfo() {
|
}
|
||||||
// return new ApiInfoBuilder()
|
|
||||||
// .title("Swagger项目测试")
|
|
||||||
// .description("novel项目接口文档")
|
|
||||||
// .build();
|
public List<SecurityScheme> initSecuritySchemeList() {
|
||||||
// }
|
List<SecurityScheme> list = new ArrayList<>();
|
||||||
//
|
list.add(securitySchemeBasicAuth());
|
||||||
// private SecurityContext securityContext() {
|
list.add(securitySchemeApiKey());
|
||||||
// return SecurityContext.builder()
|
|
||||||
// .securityReferences(Collections.singletonList(new SecurityReference("OAuth2", new AuthorizationScope[0])))
|
// oauth2下的几个模式配置
|
||||||
// .build();
|
// 1. 密码模式
|
||||||
// }
|
list.add(securitySchemeOAuth2Password());
|
||||||
//
|
// 2. 客户端模式
|
||||||
// private List<AuthorizationScope> scopes() {
|
list.add(securitySchemeOAuth2ClientCredentials());
|
||||||
// List<AuthorizationScope> list = new ArrayList<>();
|
// 3. 授权码模式
|
||||||
// list.add(new AuthorizationScope("read_scope", "Grants read access"));
|
list.add(securitySchemeOAuth2AuthorizationCode());
|
||||||
// list.add(new AuthorizationScope("write_scope", "Grants write access"));
|
// 4. 简化模式
|
||||||
// list.add(new AuthorizationScope("admin_scope", "Grants read write and delete access"));
|
list.add(securitySchemeOAuth2Implicit());
|
||||||
// return list;
|
return list;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// public List<SecurityScheme> initSecuritySchemeList() {
|
// ApiKey模式
|
||||||
// List<SecurityScheme> list = new ArrayList<>();
|
private SecurityScheme securitySchemeApiKey() {
|
||||||
// list.add(securitySchemeOAuth2());
|
return new ApiKey("ApiKey模式", "Authorization", ApiKeyVehicle.HEADER.getValue());
|
||||||
// list.add(securitySchemeApiKey());
|
}
|
||||||
// // list.add(securitySchemeHttp());
|
|
||||||
// list.add(securitySchemeBasicAuth());
|
// basicAuth模式
|
||||||
// list.add(securitySchemeOauth2Schema());
|
private SecurityScheme securitySchemeBasicAuth() {
|
||||||
// return list;
|
return new BasicAuth("basicAuth模式");
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// private SecurityScheme securitySchemeOAuth2() {
|
// oauth2下面的password模式
|
||||||
// List<GrantType> grantTypes = new ArrayList<>();
|
private SecurityScheme securitySchemeOAuth2Password() {
|
||||||
// grantTypes.add(new ResourceOwnerPasswordCredentialsGrant("/oauth/token"));
|
List<GrantType> grantTypes = new ArrayList<>();
|
||||||
// return new OAuthBuilder()
|
grantTypes.add(new ResourceOwnerPasswordCredentialsGrant("/oauth/token"));
|
||||||
// .name("OAuth2")
|
return new OAuthBuilder().name("oauth2的Password模式").scopes(scopes()).grantTypes(grantTypes).build();
|
||||||
// .scopes(scopes())
|
}
|
||||||
// .grantTypes(grantTypes)
|
|
||||||
// .build();
|
// oauth2下面的authorization_code模式
|
||||||
// }
|
private SecurityScheme securitySchemeOAuth2AuthorizationCode() {
|
||||||
//
|
List<GrantType> grantTypes = new ArrayList<>();
|
||||||
// private SecurityScheme securitySchemeApiKey() {
|
TokenRequestEndpoint tokenRequestEndpoint = new TokenRequestEndpoint("/oauth/authorize", "", "");
|
||||||
// return new ApiKey("Authorization", "api_key", ApiKeyVehicle.HEADER.getValue());
|
TokenEndpoint tokenEndpoint = new TokenEndpoint("/oauth/token", "token");
|
||||||
// }
|
grantTypes.add(new AuthorizationCodeGrant(tokenRequestEndpoint, tokenEndpoint));
|
||||||
//
|
return new OAuthBuilder().name("oauth2的authorization_code模式").scopes(scopes()).grantTypes(grantTypes).build();
|
||||||
// private SecurityScheme securitySchemeHttp() {
|
}
|
||||||
// return HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("JWT").build();
|
|
||||||
// }
|
// oauth2下面的implicit模式
|
||||||
//
|
private SecurityScheme securitySchemeOAuth2Implicit() {
|
||||||
// private SecurityScheme securitySchemeBasicAuth() {
|
List<GrantType> grantTypes = new ArrayList<>();
|
||||||
// return new BasicAuth("basicAuth");
|
ImplicitGrant implicitGrant = new ImplicitGrant(new LoginEndpoint("/oauth/authorize"), "token");
|
||||||
// }
|
grantTypes.add(implicitGrant);
|
||||||
//
|
return new OAuthBuilder().name("oauth2的implicit模式").scopes(scopes()).grantTypes(grantTypes).build();
|
||||||
// private SecurityScheme securitySchemeOauth2Schema() {
|
}
|
||||||
// List<GrantType> grantTypes = new ArrayList<>();
|
|
||||||
// TokenRequestEndpoint tokenRequestEndpoint = new TokenRequestEndpoint("/oauth/authorize", "", "");
|
// oauth2下面的ClientCredentials模式
|
||||||
// TokenEndpoint tokenEndpoint = new TokenEndpoint("/oauth/token", "token");
|
private SecurityScheme securitySchemeOAuth2ClientCredentials() {
|
||||||
// grantTypes.add(new AuthorizationCodeGrant(tokenRequestEndpoint, tokenEndpoint));
|
List<GrantType> grantTypes = new ArrayList<>();
|
||||||
// return new OAuthBuilder()
|
grantTypes.add(new ClientCredentialsGrant("/oauth/token"));
|
||||||
// .name("oauth2schema")
|
return new OAuthBuilder().name("oauth2的clientCredentials模式").scopes(scopes()).grantTypes(grantTypes).build();
|
||||||
// .scopes(scopes())
|
}
|
||||||
// .grantTypes(grantTypes)
|
|
||||||
// .build();
|
private SecurityContext securityContext() {
|
||||||
// }
|
List<SecurityReference> list = new ArrayList<>();
|
||||||
//
|
Arrays.stream(securitySchemeNames).forEach(s -> list.add(new SecurityReference(s, new AuthorizationScope[0])));
|
||||||
// @Bean
|
return SecurityContext.builder().securityReferences(list).build();
|
||||||
// public SecurityConfiguration security() {
|
}
|
||||||
// return SecurityConfigurationBuilder.builder()
|
|
||||||
// .clientId("")
|
private List<AuthorizationScope> scopes() {
|
||||||
// .clientSecret("")
|
List<AuthorizationScope> list = new ArrayList<>();
|
||||||
// .realm("*")
|
list.add(new AuthorizationScope("read_scope", "Grants read access"));
|
||||||
// .appName("")
|
list.add(new AuthorizationScope("write_scope", "Grants write access"));
|
||||||
// .scopeSeparator("")
|
list.add(new AuthorizationScope("admin_scope", "Grants read write and delete access"));
|
||||||
// .useBasicAuthenticationWithAccessCodeGrant(false)
|
return list;
|
||||||
// .build();
|
}
|
||||||
// }
|
@Bean
|
||||||
//
|
public SecurityConfiguration security() {
|
||||||
// }
|
return SecurityConfigurationBuilder.builder().clientId("").clientSecret("").realm("*").appName("").scopeSeparator("").useBasicAuthenticationWithAccessCodeGrant(false).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,145 +1,162 @@
|
|||||||
package com.jnssd.config;
|
// package com.jnssd.config;
|
||||||
|
//
|
||||||
import org.springframework.context.annotation.Bean;
|
// import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
// import org.springframework.context.annotation.Configuration;
|
||||||
import springfox.documentation.builders.*;
|
// import org.springframework.util.AntPathMatcher;
|
||||||
import springfox.documentation.oas.annotations.EnableOpenApi;
|
// import springfox.documentation.builders.ApiInfoBuilder;
|
||||||
import springfox.documentation.service.*;
|
// import springfox.documentation.builders.OpenIdConnectSchemeBuilder;
|
||||||
import springfox.documentation.spi.DocumentationType;
|
// import springfox.documentation.builders.PathSelectors;
|
||||||
import springfox.documentation.spi.service.contexts.SecurityContext;
|
// import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
import springfox.documentation.spring.web.plugins.Docket;
|
// import springfox.documentation.oas.annotations.EnableOpenApi;
|
||||||
|
// import springfox.documentation.service.*;
|
||||||
import java.util.ArrayList;
|
// import springfox.documentation.spi.DocumentationType;
|
||||||
import java.util.Collections;
|
// import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||||
import java.util.List;
|
// import springfox.documentation.spring.web.plugins.Docket;
|
||||||
|
//
|
||||||
/**
|
// import java.util.ArrayList;
|
||||||
* <h3>spring-boot-openapi</h3>
|
// import java.util.Collections;
|
||||||
* <p>配置openapi</p>
|
// import java.util.List;
|
||||||
*
|
//
|
||||||
* @author zxj
|
// /**
|
||||||
* @since 2023-10-13 14:29:58
|
// * <h3>spring-boot-openapi</h3>
|
||||||
*/
|
// * <p>配置openapi</p>
|
||||||
|
// *
|
||||||
@Configuration
|
// * @author zxj
|
||||||
@EnableOpenApi
|
// * @since 2023-10-13 14:29:58
|
||||||
public class SwaggerOpenApiConfig {
|
// */
|
||||||
|
//
|
||||||
@Bean
|
// @Configuration
|
||||||
public Docket api() {
|
// @EnableOpenApi
|
||||||
return new Docket(DocumentationType.OAS_30)
|
// public class SwaggerOpenApiConfig {
|
||||||
.apiInfo(apiInfo())
|
//
|
||||||
.select()
|
// @Bean
|
||||||
// 扫描特定包
|
// public Docket api() {
|
||||||
// 扫描所有有注解的api,用这种方式更灵活
|
// return new Docket(DocumentationType.OAS_30)
|
||||||
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
// .apiInfo(apiInfo())
|
||||||
//.apis(RequestHandlerSelectors.any())
|
// .select()
|
||||||
.apis(RequestHandlerSelectors.basePackage("com.jnssd"))
|
// // 扫描特定包
|
||||||
.paths(PathSelectors.any())
|
// // 扫描所有有注解的api,用这种方式更灵活
|
||||||
.build()
|
// // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
||||||
.securitySchemes(initSecuritySchemeList())
|
// //.apis(RequestHandlerSelectors.any())
|
||||||
.securityContexts(Collections.singletonList(securityContext()));
|
// .apis(RequestHandlerSelectors.basePackage("com.jnssd"))
|
||||||
}
|
// .paths(PathSelectors.any())
|
||||||
|
// .build()
|
||||||
public ApiInfo apiInfo() {
|
// .securitySchemes(initSecuritySchemeList())
|
||||||
return new ApiInfoBuilder()
|
// .securityContexts(Collections.singletonList(securityContext()));
|
||||||
.title("Swagger项目测试")
|
// }
|
||||||
.description("novel项目接口文档")
|
//
|
||||||
.build();
|
// public ApiInfo apiInfo() {
|
||||||
}
|
// return new ApiInfoBuilder()
|
||||||
|
// .title("Swagger项目测试")
|
||||||
private List<SecurityScheme> initSecuritySchemeList() {
|
// .description("novel项目接口文档")
|
||||||
|
// .build();
|
||||||
List<SecurityScheme> list = new ArrayList<>();
|
// }
|
||||||
list.add(httpAuthenticationScheme());
|
//
|
||||||
list.add(securitySchemeApiKey());
|
// private List<SecurityScheme> initSecuritySchemeList() {
|
||||||
list.add(securitySchemeOpenIdConnect());
|
//
|
||||||
|
// List<SecurityScheme> list = new ArrayList<>();
|
||||||
// 配置oauth2的几种模式
|
// list.add(httpAuthenticationScheme());
|
||||||
list.add(securitySchemeOauth2ClientCredentials());
|
// list.add(securitySchemeApiKey());
|
||||||
list.add(securitySchemeOauth2implicit());
|
// list.add(securitySchemeOpenIdConnect());
|
||||||
list.add(securitySchemeOauth2Password());
|
//
|
||||||
list.add(securitySchemeOauth2AuthorizationCode());
|
// // 配置oauth2的几种模式
|
||||||
return list;
|
// list.add(securitySchemeOauth2ClientCredentials());
|
||||||
}
|
// list.add(securitySchemeOauth2implicit());
|
||||||
|
// list.add(securitySchemeOauth2Password());
|
||||||
private SecurityScheme httpAuthenticationScheme() {
|
// list.add(securitySchemeOauth2AuthorizationCode());
|
||||||
return HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("JWT的值").build();
|
// return list;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// ApiKey模式
|
// private SecurityScheme httpAuthenticationScheme() {
|
||||||
private SecurityScheme securitySchemeApiKey() {
|
// return HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("JWT的值").build();
|
||||||
return new ApiKey("Authorization授权", "Authorization", "header");
|
// }
|
||||||
}
|
//
|
||||||
|
// // ApiKey模式
|
||||||
// OpenIdConnect
|
// private SecurityScheme securitySchemeApiKey() {
|
||||||
private SecurityScheme securitySchemeOpenIdConnect() {
|
// return new ApiKey("Authorization授权", "Authorization", "header");
|
||||||
return new OpenIdConnectSchemeBuilder()
|
// }
|
||||||
.name("OpenId授权")
|
//
|
||||||
.description("OpenIdConnect授权配置")
|
// // OpenIdConnect
|
||||||
.openIdConnectUrl("/oauth/authorize")
|
//
|
||||||
.build();
|
// // return new OpenIdConnectSchemeBuilder()
|
||||||
}
|
// // .name("OpenId授权")
|
||||||
|
// // .description("OpenIdConnect授权配置")
|
||||||
// 客户端模式
|
// // .openIdConnectUrl("https://your-openid-connect-url")
|
||||||
private SecurityScheme securitySchemeOauth2ClientCredentials() {
|
// // .build();
|
||||||
return OAuth2Scheme.OAUTH2_CLIENT_CREDENTIALS_FLOW_BUILDER
|
// private SecurityScheme securitySchemeOpenIdConnect() {
|
||||||
.name("客户端模式")
|
// // Swagger配置 OpenIdConnect
|
||||||
.tokenUrl("/oauth/authorize")
|
// return new OpenIdConnectSchemeBuilder()
|
||||||
.scopes(scopes())
|
// .name("OpenIdConnect授权")
|
||||||
.build();
|
// .description("OpenIdConnect授权配置")
|
||||||
}
|
// .openIdConnectUrl("https://your-openid-connect-url")
|
||||||
|
// .build();
|
||||||
// 隐式模式
|
// }
|
||||||
private SecurityScheme securitySchemeOauth2implicit() {
|
//
|
||||||
return OAuth2Scheme.OAUTH2_IMPLICIT_FLOW_BUILDER
|
// // 客户端模式
|
||||||
.name("简化模式")
|
// private SecurityScheme securitySchemeOauth2ClientCredentials() {
|
||||||
.authorizationUrl("/oauth/authorize")
|
// return OAuth2Scheme.OAUTH2_CLIENT_CREDENTIALS_FLOW_BUILDER
|
||||||
.scopes(scopes())
|
// .name("客户端模式")
|
||||||
.build();
|
// .tokenUrl("/oauth/authorize")
|
||||||
}
|
// .scopes(scopes())
|
||||||
|
// .build();
|
||||||
// 密码模式
|
// }
|
||||||
private SecurityScheme securitySchemeOauth2Password() {
|
//
|
||||||
return OAuth2Scheme.OAUTH2_PASSWORD_FLOW_BUILDER
|
// // 隐式模式
|
||||||
.name("密码模式")
|
// private SecurityScheme securitySchemeOauth2implicit() {
|
||||||
.tokenUrl("/oauth/token")
|
// return OAuth2Scheme.OAUTH2_IMPLICIT_FLOW_BUILDER
|
||||||
.scopes(scopes())
|
// .name("简化模式")
|
||||||
.build();
|
// .authorizationUrl("/oauth/authorize")
|
||||||
}
|
// .scopes(scopes())
|
||||||
|
// .build();
|
||||||
// 授权码模式
|
// }
|
||||||
private SecurityScheme securitySchemeOauth2AuthorizationCode() {
|
//
|
||||||
return OAuth2Scheme.OAUTH2_AUTHORIZATION_CODE_FLOW_BUILDER
|
// // 密码模式
|
||||||
.name("授权码模式")
|
// private SecurityScheme securitySchemeOauth2Password() {
|
||||||
.authorizationUrl("/oauth/authorize")
|
// return OAuth2Scheme.OAUTH2_PASSWORD_FLOW_BUILDER
|
||||||
.tokenUrl("/oauth/token")
|
// .name("密码模式")
|
||||||
.scopes(scopes())
|
// .tokenUrl("/oauth/token")
|
||||||
.build();
|
// .scopes(scopes())
|
||||||
}
|
// .build();
|
||||||
|
// }
|
||||||
private List<AuthorizationScope> scopes() {
|
//
|
||||||
List<AuthorizationScope> list = new ArrayList<>();
|
// // 授权码模式
|
||||||
list.add(new AuthorizationScope("read_scope", "Grants read access"));
|
// private SecurityScheme securitySchemeOauth2AuthorizationCode() {
|
||||||
list.add(new AuthorizationScope("write_scope", "Grants write access"));
|
// return OAuth2Scheme.OAUTH2_AUTHORIZATION_CODE_FLOW_BUILDER
|
||||||
list.add(new AuthorizationScope("admin_scope", "Grants read write and delete access"));
|
// .name("授权码模式")
|
||||||
return list;
|
// .authorizationUrl("/oauth/authorize")
|
||||||
}
|
// .tokenUrl("/oauth/token")
|
||||||
|
// .scopes(scopes())
|
||||||
private SecurityContext securityContext() {
|
// .build();
|
||||||
return SecurityContext.builder()
|
// }
|
||||||
.securityReferences(defaultAuth())
|
//
|
||||||
.operationSelector(operationContext -> {
|
// private List<AuthorizationScope> scopes() {
|
||||||
System.out.println("operationContext" + operationContext);
|
// List<AuthorizationScope> list = new ArrayList<>();
|
||||||
return !operationContext.httpMethod().name().equals("GET");
|
// list.add(new AuthorizationScope("read_scope", "Grants read access"));
|
||||||
})
|
// list.add(new AuthorizationScope("write_scope", "Grants write access"));
|
||||||
.build();
|
// list.add(new AuthorizationScope("admin_scope", "Grants read write and delete access"));
|
||||||
}
|
// return list;
|
||||||
|
// }
|
||||||
private List<SecurityReference> defaultAuth() {
|
//
|
||||||
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
|
// private SecurityContext securityContext() {
|
||||||
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
|
// return SecurityContext.builder()
|
||||||
authorizationScopes[0] = authorizationScope;
|
// .securityReferences(defaultAuth())
|
||||||
return Collections.singletonList(new SecurityReference("密码模式", authorizationScopes));
|
// .operationSelector(operationContext -> {
|
||||||
}
|
// System.out.println("operationContext" + operationContext);
|
||||||
}
|
// // 除了get方法其他方法都要校验
|
||||||
|
// // return !operationContext.httpMethod().name().equals("GET");
|
||||||
|
//
|
||||||
|
// // 通过地址模糊匹配
|
||||||
|
// AntPathMatcher pathMatcher = new AntPathMatcher();
|
||||||
|
// String path = operationContext.requestMappingPattern();
|
||||||
|
// return pathMatcher.match("/menu/**", path) || pathMatcher.match("/user/**", path);
|
||||||
|
// })
|
||||||
|
// .build();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private List<SecurityReference> defaultAuth() {
|
||||||
|
// AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
|
||||||
|
// AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
|
||||||
|
// authorizationScopes[0] = authorizationScope;
|
||||||
|
// return Collections.singletonList(new SecurityReference("密码模式", authorizationScopes));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package com.jnssd.controller;
|
package com.jnssd.controller;
|
||||||
|
|
||||||
import com.jnssd.model.Menu;
|
|
||||||
import com.jnssd.model.Role;
|
import com.jnssd.model.Role;
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -17,7 +17,8 @@ import java.util.Objects;
|
|||||||
* @author zxj
|
* @author zxj
|
||||||
* @since 2023-10-12 16:32:38
|
* @since 2023-10-12 16:32:38
|
||||||
*/
|
*/
|
||||||
@Data
|
@RestController
|
||||||
|
@RequestMapping("/Role")
|
||||||
public class RoleController {
|
public class RoleController {
|
||||||
|
|
||||||
final static String SUCCESS_TEXT = "操作成功!";
|
final static String SUCCESS_TEXT = "操作成功!";
|
||||||
@ -25,6 +26,7 @@ public class RoleController {
|
|||||||
|
|
||||||
List<Role> list = new java.util.ArrayList<>();
|
List<Role> list = new java.util.ArrayList<>();
|
||||||
|
|
||||||
|
@GetMapping("/")
|
||||||
public ResponseEntity<List<Role>> getAll() {
|
public ResponseEntity<List<Role>> getAll() {
|
||||||
return ResponseEntity.ok(list);
|
return ResponseEntity.ok(list);
|
||||||
}
|
}
|
||||||
@ -33,10 +35,11 @@ public class RoleController {
|
|||||||
@PostMapping("add")
|
@PostMapping("add")
|
||||||
public ResponseEntity<String> add(Role entity) {
|
public ResponseEntity<String> add(Role entity) {
|
||||||
try {
|
try {
|
||||||
entity.setId(Objects.requireNonNull(list.stream().max(Comparator.comparingInt(Role::getId)).get()).getId() + 1);
|
entity.setId(list.size() + 1);
|
||||||
list.add(entity);
|
list.add(entity);
|
||||||
return ResponseEntity.ok(SUCCESS_TEXT);
|
return ResponseEntity.ok(SUCCESS_TEXT);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
return ResponseEntity.status(400).body(FAIL_TEXT);
|
return ResponseEntity.status(400).body(FAIL_TEXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -46,7 +49,7 @@ public class RoleController {
|
|||||||
public ResponseEntity<Object> update(Role entity) {
|
public ResponseEntity<Object> update(Role entity) {
|
||||||
try {
|
try {
|
||||||
// 修改list下面的数据
|
// 修改list下面的数据
|
||||||
list.replaceAll((Role) -> Objects.equals(Role.getId(), entity.getId()) ? entity : Role);
|
list.replaceAll((role) -> Objects.equals(role.getId(), entity.getId()) ? entity : role);
|
||||||
|
|
||||||
return ResponseEntity.ok(SUCCESS_TEXT);
|
return ResponseEntity.ok(SUCCESS_TEXT);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -69,9 +72,9 @@ public class RoleController {
|
|||||||
@PostMapping("query")
|
@PostMapping("query")
|
||||||
public ResponseEntity<Object> query(Integer id) {
|
public ResponseEntity<Object> query(Integer id) {
|
||||||
try {
|
try {
|
||||||
Role Role = (Role) list.stream().filter(e -> Objects.equals(e.getId(), id));
|
Role role = (Role) list.stream().filter(e -> Objects.equals(e.getId(), id));
|
||||||
// list 下查询
|
// list 下查询
|
||||||
return ResponseEntity.ok(Role);
|
return ResponseEntity.ok(role);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return ResponseEntity.status(400).body(FAIL_TEXT);
|
return ResponseEntity.status(400).body(FAIL_TEXT);
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package com.jnssd.controller;
|
package com.jnssd.controller;
|
||||||
|
|
||||||
import com.jnssd.model.User;
|
import com.jnssd.model.User;
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -16,7 +17,8 @@ import java.util.Objects;
|
|||||||
* @author zxj
|
* @author zxj
|
||||||
* @since 2023-10-12 16:30:04
|
* @since 2023-10-12 16:30:04
|
||||||
*/
|
*/
|
||||||
@Data
|
@RestController
|
||||||
|
@RequestMapping("/user")
|
||||||
public class UserController {
|
public class UserController {
|
||||||
|
|
||||||
final static String SUCCESS_TEXT = "操作成功!";
|
final static String SUCCESS_TEXT = "操作成功!";
|
||||||
@ -24,6 +26,7 @@ public class UserController {
|
|||||||
|
|
||||||
List<User> list = new java.util.ArrayList<>();
|
List<User> list = new java.util.ArrayList<>();
|
||||||
|
|
||||||
|
@GetMapping("/")
|
||||||
public ResponseEntity<List<User>> getAll() {
|
public ResponseEntity<List<User>> getAll() {
|
||||||
return ResponseEntity.ok(list);
|
return ResponseEntity.ok(list);
|
||||||
}
|
}
|
||||||
@ -32,10 +35,11 @@ public class UserController {
|
|||||||
@PostMapping("add")
|
@PostMapping("add")
|
||||||
public ResponseEntity<String> add(User entity) {
|
public ResponseEntity<String> add(User entity) {
|
||||||
try {
|
try {
|
||||||
entity.setId(Objects.requireNonNull(list.stream().max(Comparator.comparingInt(User::getId)).get()).getId() + 1);
|
entity.setId(list.size() + 1);
|
||||||
list.add(entity);
|
list.add(entity);
|
||||||
return ResponseEntity.ok(SUCCESS_TEXT);
|
return ResponseEntity.ok(SUCCESS_TEXT);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
return ResponseEntity.status(400).body(FAIL_TEXT);
|
return ResponseEntity.status(400).body(FAIL_TEXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -45,7 +49,7 @@ public class UserController {
|
|||||||
public ResponseEntity<Object> update(User entity) {
|
public ResponseEntity<Object> update(User entity) {
|
||||||
try {
|
try {
|
||||||
// 修改list下面的数据
|
// 修改list下面的数据
|
||||||
list.replaceAll((User) -> Objects.equals(User.getId(), entity.getId()) ? entity : User);
|
list.replaceAll((user) -> Objects.equals(user.getId(), entity.getId()) ? entity : user);
|
||||||
|
|
||||||
return ResponseEntity.ok(SUCCESS_TEXT);
|
return ResponseEntity.ok(SUCCESS_TEXT);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -68,9 +72,9 @@ public class UserController {
|
|||||||
@PostMapping("query")
|
@PostMapping("query")
|
||||||
public ResponseEntity<Object> query(Integer id) {
|
public ResponseEntity<Object> query(Integer id) {
|
||||||
try {
|
try {
|
||||||
User User = (User) list.stream().filter(e -> Objects.equals(e.getId(), id));
|
User user = (User) list.stream().filter(e -> Objects.equals(e.getId(), id));
|
||||||
// list 下查询
|
// list 下查询
|
||||||
return ResponseEntity.ok(User);
|
return ResponseEntity.ok(user);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return ResponseEntity.status(400).body(FAIL_TEXT);
|
return ResponseEntity.status(400).body(FAIL_TEXT);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
server:
|
server:
|
||||||
port: 18080
|
port: 8080
|
||||||
|
|
||||||
# ========================================================================
|
# ========================================================================
|
||||||
# 启动报错需要修改以下mvc配置 Failed to start bean 'documentationPluginsBootstrapper'
|
# 启动报错需要修改以下mvc配置 Failed to start bean 'documentationPluginsBootstrapper'
|
||||||
|
Loading…
Reference in New Issue
Block a user