54 changed files with 278 additions and 156 deletions
-
1.idea/xm-backend.iml
-
3xm-bootstrap/xm-bootstrap.iml
-
17xm-core/pom.xml
-
2xm-core/src/main/java/com/xm/core/ctrl/XmAttachmentController.java
-
6xm-core/src/main/java/com/xm/core/ctrl/XmBranchStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmBranchTaskTypeStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmEnvListController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmExchangeController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmFileController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmGroupController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmGroupStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmGroupUserController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmIterationController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmIterationStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmMenuExchangeController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmMenuPlanController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmMenuStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmMyFocusController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmPhaseController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmPhaseMenuController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProductStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectContractController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectEnvListController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectKpiController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectKpiHisController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmProjectMBudgetCostNouserController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmProjectMBudgetCostUserController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmProjectMCostNouserController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmProjectMCostUserController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectOptionsController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateHisController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmProjectTaskTypeStateController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmQuestionController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmQuestionHandleController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmQuestionTagController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmRecordController.java
-
139xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
-
4xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmTaskSkillController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseController.java
-
2xm-core/src/main/java/com/xm/core/ctrl/XmTestCaseExecController.java
-
19xm-core/src/main/java/com/xm/core/ctrl/ZZZController.java
-
1xm-core/src/main/java/com/xm/core/service/XmTaskService.java
-
2xm-core/src/main/resources/application-dev.properties
-
2xm-core/src/main/resources/application.properties
-
92xm-core/src/test/java/com/xm/SwaggerConfig.java
-
12xm-core/src/test/java/com/xm/WebSecurityConfig.java
-
2xm-core/src/test/java/com/xm/XmApplication.java
-
34xm-core/xm-core.iml
@ -0,0 +1,19 @@ |
|||
package com.xm.core.ctrl; |
|||
|
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
/** |
|||
* 如果系统最后一个加载的接口加了@ApiGlobalModel/@ApiJsonModel/@ApiSimpleModel,这个接口动态生成的参数在swagger文档里将找不到 |
|||
* 出现这种情况就加上这个Controller,保证这个Controller是最后一个Controller => 保证最后一个接口没有使用以上3个注解 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("/whatever") |
|||
@Api(tags = "whatever") |
|||
public class ZZZController { |
|||
@GetMapping("/whatever") |
|||
public void whatever() { |
|||
} |
|||
} |
|||
@ -0,0 +1,92 @@ |
|||
package com.xm; |
|||
|
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
import springfox.documentation.service.SecurityReference; |
|||
import springfox.documentation.builders.ApiInfoBuilder; |
|||
import springfox.documentation.builders.RequestHandlerSelectors; |
|||
import springfox.documentation.service.ApiInfo; |
|||
import springfox.documentation.service.ApiKey; |
|||
import springfox.documentation.service.Contact; |
|||
import springfox.documentation.service.AuthorizationScope; |
|||
import springfox.documentation.spi.DocumentationType; |
|||
import springfox.documentation.spi.service.contexts.SecurityContext; |
|||
import springfox.documentation.spring.web.plugins.Docket; |
|||
import springfox.documentation.swagger2.annotations.EnableSwagger2; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* api 文档, |
|||
* 生产环境需要禁止访问 |
|||
* |
|||
* 需要将下面路径放到 WebSecurityConfig 中 |
|||
* |
|||
* "/swagger-ui.html", |
|||
* "/webjars/**", |
|||
* "/swagger-ui/**", |
|||
* "/swagger-resources/**", |
|||
* "/v2/*", |
|||
* "/csrf", |
|||
* "/" |
|||
*/ |
|||
//@ConditionalOnProperty(havingValue = "dev",name = {"spring.profiles.active"}) |
|||
@Configuration |
|||
@EnableSwagger2 |
|||
public class SwaggerConfig { |
|||
@Value(value = "${spring.application.name:}") |
|||
String applicationName=""; |
|||
|
|||
@Value(value = "${spring.application.name:}") |
|||
String springProfilesActive=""; |
|||
|
|||
@Value(value = "${server.port:}") |
|||
String serverPort=""; |
|||
|
|||
@Bean |
|||
public Docket customDocket() { |
|||
Docket docket= new Docket(DocumentationType.SWAGGER_2).select(). |
|||
apis(RequestHandlerSelectors.any()) |
|||
.build() |
|||
.apiInfo(apiInfo()).enable(true); |
|||
|
|||
/* |
|||
* 下面的语句是开启对JWT的支持,当用户用Swagger调用受JWT认证保护的方法, |
|||
* 必须要先提交参数(例如令牌) |
|||
*/ |
|||
//存储用户必须提交的参数 |
|||
List<ApiKey> apikey = new ArrayList(); |
|||
//规定用户需要输入什么参数 |
|||
apikey.add(new ApiKey("token", "token", "token")); |
|||
docket.securitySchemes(apikey); |
|||
|
|||
//以下定义如果用户JWT认证通过,则在Swagger中全局有效 |
|||
AuthorizationScope scope = new AuthorizationScope("global", "accessEverything"); |
|||
AuthorizationScope[] scopeArray = {scope}; |
|||
//存储令牌和作用域 |
|||
SecurityReference reference = new SecurityReference("token", scopeArray); |
|||
List refList = new ArrayList(); |
|||
refList.add(reference); |
|||
SecurityContext context = SecurityContext.builder().securityReferences(refList).build(); |
|||
List cxtList = new ArrayList(); |
|||
cxtList.add(context); |
|||
docket.securityContexts(cxtList); |
|||
return docket; |
|||
} |
|||
|
|||
|
|||
private ApiInfo apiInfo() { |
|||
Contact contact = new Contact("擎勤科技", String.format("http://localhost:%s/swagger-ui.html",serverPort), "cyc58469@163.com"); |
|||
return new ApiInfoBuilder() |
|||
.title("唛盟项目核心接口") |
|||
.description("接口文档") |
|||
.contact(contact) |
|||
.version("1.0.0") |
|||
.build(); |
|||
} |
|||
|
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue