登录会话拦截优化

This commit is contained in:
暮光:城中城
2021-11-23 22:30:25 +08:00
parent 80d525b735
commit b32c9a8f9e
12 changed files with 152 additions and 348 deletions

View File

@@ -20,6 +20,7 @@ import springfox.documentation.swagger.web.SwaggerResource;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -76,8 +77,13 @@ public class SwaggerDocumentController {
String docUrl = SwaggerDocUtil.replaceSwaggerResources(swaggerDoc.getDocUrl());
if (SwaggerDocUtil.isSwaggerResources(docUrl)) {
String swaggerDomain = SwaggerDocUtil.getSwaggerResourceDomain(docUrl);
String resourcesStr = swaggerHttpRequestService.requestSwaggerUrl(request, docUrl, swaggerDomain);
List<SwaggerResource> resourceList = JSON.parseArray(resourcesStr, SwaggerResource.class);
List<SwaggerResource> resourceList;
try {
String resourcesStr = swaggerHttpRequestService.requestSwaggerUrl(request, docUrl, swaggerDomain);
resourceList = JSON.parseArray(resourcesStr, SwaggerResource.class);
} catch (Exception e) {
return DocResponseJson.warn("解析文档地址失败:" + e.getMessage());
}
if (resourceList == null || resourceList.isEmpty()) {
return DocResponseJson.warn("该地址未找到文档");
}

View File

@@ -2,6 +2,7 @@ package com.zyplayer.doc.swaggerplus.controller;
import com.zyplayer.doc.core.annotation.AuthMan;
import com.zyplayer.doc.core.exception.ConfirmException;
import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.data.repository.manage.entity.SwaggerDoc;
import com.zyplayer.doc.data.service.manage.SwaggerDocService;
import com.zyplayer.doc.swaggerplus.controller.vo.SwaggerResourceVo;
@@ -37,6 +38,7 @@ public class SwaggerProxyController {
@Resource
private SwaggerHttpRequestService swaggerHttpRequestService;
@ResponseBody
@RequestMapping("/swagger-resources")
public List<SwaggerResourceVo> swaggerResources() {
List<SwaggerResourceVo> resourceList = new LinkedList<>();
@@ -57,15 +59,19 @@ public class SwaggerProxyController {
@ResponseBody
@RequestMapping(value = "/v2/api-docs", produces = {MimeTypeUtils.APPLICATION_JSON_VALUE, HAL_MEDIA_TYPE})
public ResponseEntity<Json> content(HttpServletRequest request, Long id) {
public ResponseEntity<Object> content(HttpServletRequest request, Long id) {
SwaggerDoc swaggerDoc = swaggerDocService.getById(id);
if (swaggerDoc == null) {
throw new ConfirmException("文档不存在");
}
if (Objects.equals(swaggerDoc.getDocType(), 1)) {
String docsDomain = SwaggerDocUtil.getV2ApiDocsDomain(swaggerDoc.getDocUrl());
String contentStr = swaggerHttpRequestService.requestSwaggerUrl(request, swaggerDoc.getDocUrl(), docsDomain);
return new ResponseEntity<>(new Json(contentStr), HttpStatus.OK);
try {
String docsDomain = SwaggerDocUtil.getV2ApiDocsDomain(swaggerDoc.getDocUrl());
String contentStr = swaggerHttpRequestService.requestSwaggerUrl(request, swaggerDoc.getDocUrl(), docsDomain);
return new ResponseEntity<>(new Json(contentStr), HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<>(DocResponseJson.warn("请求文档失败"), HttpStatus.OK);
}
}
return new ResponseEntity<>(new Json(swaggerDoc.getJsonContent()), HttpStatus.OK);
}