提交 | 用户 | 时间
|
e7c126
|
1 |
package com.iailab.framework.web.config; |
H |
2 |
|
|
3 |
import lombok.AllArgsConstructor; |
|
4 |
import lombok.Data; |
|
5 |
import lombok.NoArgsConstructor; |
|
6 |
import org.springframework.boot.context.properties.ConfigurationProperties; |
|
7 |
import org.springframework.validation.annotation.Validated; |
|
8 |
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; |
|
9 |
|
|
10 |
import javax.validation.Valid; |
|
11 |
import javax.validation.constraints.NotEmpty; |
|
12 |
import javax.validation.constraints.NotNull; |
|
13 |
|
|
14 |
@ConfigurationProperties(prefix = "iailab.web") |
|
15 |
@Validated |
|
16 |
@Data |
|
17 |
public class WebProperties { |
|
18 |
|
|
19 |
@NotNull(message = "APP API 不能为空") |
|
20 |
private Api appApi = new Api("/app-api", "**.controller.app.**"); |
|
21 |
@NotNull(message = "Admin API 不能为空") |
|
22 |
private Api adminApi = new Api("/admin-api", "**.controller.admin.**"); |
|
23 |
|
|
24 |
@NotNull(message = "Admin UI 不能为空") |
|
25 |
private Ui adminUi; |
|
26 |
|
|
27 |
@Data |
|
28 |
@AllArgsConstructor |
|
29 |
@NoArgsConstructor |
|
30 |
@Valid |
|
31 |
public static class Api { |
|
32 |
|
|
33 |
/** |
|
34 |
* API 前缀,实现所有 Controller 提供的 RESTFul API 的统一前缀 |
|
35 |
* |
|
36 |
* |
|
37 |
* 意义:通过该前缀,避免 Swagger、Actuator 意外通过 Nginx 暴露出来给外部,带来安全性问题 |
|
38 |
* 这样,Nginx 只需要配置转发到 /api/* 的所有接口即可。 |
|
39 |
* |
|
40 |
* @see IailabWebAutoConfiguration#configurePathMatch(PathMatchConfigurer) |
|
41 |
*/ |
|
42 |
@NotEmpty(message = "API 前缀不能为空") |
|
43 |
private String prefix; |
|
44 |
|
|
45 |
/** |
|
46 |
* Controller 所在包的 Ant 路径规则 |
|
47 |
* |
|
48 |
* 主要目的是,给该 Controller 设置指定的 {@link #prefix} |
|
49 |
*/ |
|
50 |
@NotEmpty(message = "Controller 所在包不能为空") |
|
51 |
private String controller; |
|
52 |
|
|
53 |
} |
|
54 |
|
|
55 |
@Data |
|
56 |
@Valid |
|
57 |
public static class Ui { |
|
58 |
|
|
59 |
/** |
|
60 |
* 访问地址 |
|
61 |
*/ |
|
62 |
private String url; |
|
63 |
|
|
64 |
} |
|
65 |
|
|
66 |
} |