swagger 5.15.0 knife4j 4.5.0

This commit is contained in:
MaxKey 2024-05-07 22:26:49 +08:00
parent d82535228b
commit 8eb431c6aa
12 changed files with 33 additions and 23 deletions

View File

@ -398,8 +398,10 @@ subprojects {
implementation group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}"
//docs
implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations-jakarta', version: "${swaggerV3Version}"
implementation group: 'io.swagger.core.v3', name: 'swagger-core-jakarta', version: "${swaggerV3Version}"
//implementation group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
implementation group: 'io.swagger.core.v3', name: 'swagger-models-jakarta', version: "${swaggerV3Version}"
//springdoc
implementation group: 'io.github.classgraph', name: 'classgraph', version: "${classgraphVersion}"

View File

@ -198,8 +198,8 @@ swaggerV3Version =2.2.21
classgraphVersion =4.8.149
webjarslocatorcoreVersion =0.58
webjarslocatorVersion =0.52
swaggeruiVersion =5.17.2
springdocVersion =2.5.0
swaggeruiVersion =5.15.0
springdocVersion =2.0.4
knife4jVersion =4.5.0
#sdk
aliyunjavasdkcoreVersion =4.6.4

View File

@ -45,6 +45,7 @@ import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.http.converter.xml.MarshallingHttpMessageConverter;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter;
import org.springframework.web.client.RestTemplate;
@ -197,6 +198,10 @@ public class MvcAutoConfiguration implements WebMvcConfigurer {
StringHttpMessageConverter stringHttpMessageConverter,
RequestMappingHandlerAdapter requestMappingHandlerAdapter) {
List<HttpMessageConverter<?>> httpMessageConverterList = new ArrayList<>();
//需要追加byte否则springdoc-openapi接口会响应Base64编码内容导致接口文档显示失败
// https://github.com/springdoc/springdoc-openapi/issues/2143
// 解决方案
httpMessageConverterList.add(new ByteArrayHttpMessageConverter());
httpMessageConverterList.add(mappingJacksonHttpMessageConverter);
httpMessageConverterList.add(marshallingHttpMessageConverter);
httpMessageConverterList.add(stringHttpMessageConverter);

View File

@ -65,7 +65,7 @@ public class SwaggerAutoConfiguration {
"/api/oauth/v20/me"
};
String[] packagedToMatch = { "org.maxkey.authz" };
String[] packagedToMatch = { "org.dromara.maxkey.authz" };
return GroupedOpenApi.builder().group(title)
.pathsToMatch(paths)
.packagesToScan(packagedToMatch).build();
@ -79,7 +79,7 @@ public class SwaggerAutoConfiguration {
.title(title)
.description(description)
.version(version)
.termsOfService("http://www.maxkey.top/")
.termsOfService("https://www.maxkey.top/")
.license(
new License()
.name("Apache License, Version 2.0")
@ -89,7 +89,7 @@ public class SwaggerAutoConfiguration {
externalDocs(
new ExternalDocumentation()
.description("MaxKey.top contact support@maxsso.net")
.url("http://www.maxkey.top/")
.url("https://www.maxkey.top/")
);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -32,8 +32,8 @@ import org.dromara.maxkey.util.Instance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.v3.oas.annotations.Operation;
@ -47,10 +47,10 @@ import jakarta.servlet.http.HttpServletRequest;
@Tag(name = "2-8-ExtendApi接口文档模块")
@Controller
public class ExtendApiAuthorizeEndpoint extends AuthorizeBaseEndpoint{
final static Logger _logger = LoggerFactory.getLogger(ExtendApiAuthorizeEndpoint.class);
static final Logger _logger = LoggerFactory.getLogger(ExtendApiAuthorizeEndpoint.class);
@Operation(summary = "ExtendApi认证地址接口", description = "参数应用ID",method="GET")
@RequestMapping("/authz/api/{id}")
@Operation(summary = "ExtendApi认证地址接口", description = "参数应用ID")
@GetMapping("/authz/api/{id}")
public ModelAndView authorize(
HttpServletRequest request,
@PathVariable("id") String id,
@ -61,7 +61,7 @@ public class ExtendApiAuthorizeEndpoint extends AuthorizeBaseEndpoint{
modelAndView.addObject("errorMessage", "");
Apps apps = getApp(id);
_logger.debug(""+apps);
_logger.debug("{}" , apps);
if(ConstsBoolean.isTrue(apps.getIsAdapter())){
_logger.debug("Adapter {}",apps.getAdapter());
AbstractAuthorizeAdapter adapter = (AbstractAuthorizeAdapter)Instance.newInstance(apps.getAdapter());

View File

@ -44,9 +44,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@ -71,8 +70,8 @@ public class JwtAuthorizeEndpoint extends AuthorizeBaseEndpoint{
@Autowired
ApplicationConfig applicationConfig;
@Operation(summary = "JWT应用ID认证接口", description = "应用ID",method="GET")
@RequestMapping("/authz/jwt/{id}")
@Operation(summary = "JWT应用ID认证接口", description = "应用ID")
@GetMapping("/authz/jwt/{id}")
public ModelAndView authorize(
HttpServletRequest request,
HttpServletResponse response,
@ -110,10 +109,8 @@ public class JwtAuthorizeEndpoint extends AuthorizeBaseEndpoint{
return adapter.authorize(modelAndView);
}
@Operation(summary = "JWT JWK元数据接口", description = "参数mxk_metadata_APPID",method="GET")
@RequestMapping(
value = "/metadata/jwt/" + WebConstants.MXK_METADATA_PREFIX + "{appid}.{mediaType}",
method={RequestMethod.POST, RequestMethod.GET})
@Operation(summary = "JWT JWK元数据接口", description = "参数mxk_metadata_APPID")
@GetMapping(value = "/metadata/jwt/" + WebConstants.MXK_METADATA_PREFIX + "{appid}.{mediaType}")
@ResponseBody
public String metadata(HttpServletRequest request,
HttpServletResponse response,

View File

@ -111,6 +111,9 @@ public class MaxKeyMvcConfig implements WebMvcConfigurer {
.addPathPatterns("/logout")
.addPathPatterns("/logout/**")
.addPathPatterns("/authz/refused")
.excludePathPatterns("/swagger-ui/**")
.excludePathPatterns("/swagger-resources/**")
.excludePathPatterns("/v3/api-docs/**")
;
logger.debug("add Permission Interceptor");

View File

@ -47,9 +47,11 @@ import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -61,7 +63,7 @@ import jakarta.servlet.http.HttpServletResponse;
*
*/
@Tag(name = "1-1-登录接口文档模块")
@Controller
@RestController
@RequestMapping(value = "/login")
public class LoginEntryPoint {
private static Logger logger = LoggerFactory.getLogger(LoginEntryPoint.class);
@ -213,7 +215,8 @@ public class LoginEntryPoint {
* @param loginCredential
* @return
*/
@RequestMapping(value={"/signin"}, produces = {MediaType.APPLICATION_JSON_VALUE})
@Operation(summary = "登录接口", description = "登录接口",method="POST")
@PostMapping(value={"/signin"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> signin( HttpServletRequest request, HttpServletResponse response,
@RequestBody LoginCredential credential) {
Message<AuthJwt> authJwtMessage = new Message<AuthJwt>(Message.FAIL);

View File

@ -292,7 +292,7 @@ springdoc.swagger-ui.showExtensions =true
springdoc.api-docs.path =/v3/api-docs
springdoc.group-configs[0].group =default
springdoc.group-configs[0].paths-to-match =/*
springdoc.group-configs[0].packages-to-scan =org.maxkey
springdoc.group-configs[0].packages-to-scan =org.dromara.maxkey
knife4j.enable =true
knife4j.setting.language =zh_cn

View File

@ -225,7 +225,7 @@ springdoc.swagger-ui.showExtensions =true
springdoc.api-docs.path =/v3/api-docs
springdoc.group-configs[0].group =default
springdoc.group-configs[0].paths-to-match =/*
springdoc.group-configs[0].packages-to-scan =org.maxkey
springdoc.group-configs[0].packages-to-scan =org.dromara.maxkey
knife4j.enable =true
knife4j.setting.language =zh_cn

View File

@ -225,7 +225,7 @@ springdoc.swagger-ui.showExtensions =true
springdoc.api-docs.path =/v3/api-docs
springdoc.group-configs[0].group =default
springdoc.group-configs[0].paths-to-match =/*
springdoc.group-configs[0].packages-to-scan =org.maxkey
springdoc.group-configs[0].packages-to-scan =org.dromara.maxkey
knife4j.enable =true
knife4j.setting.language =zh_cn