提交 | 用户 | 时间
|
e7c126
|
1 |
package com.iailab.framework.security.config; |
H |
2 |
|
|
3 |
import lombok.Data; |
|
4 |
import org.springframework.boot.context.properties.ConfigurationProperties; |
|
5 |
import org.springframework.validation.annotation.Validated; |
|
6 |
|
|
7 |
import javax.validation.constraints.NotEmpty; |
|
8 |
import javax.validation.constraints.NotNull; |
|
9 |
import java.util.Collections; |
|
10 |
import java.util.List; |
|
11 |
|
|
12 |
@ConfigurationProperties(prefix = "iailab.security") |
|
13 |
@Validated |
|
14 |
@Data |
|
15 |
public class SecurityProperties { |
|
16 |
|
|
17 |
/** |
|
18 |
* HTTP 请求时,访问令牌的请求 Header |
|
19 |
*/ |
|
20 |
@NotEmpty(message = "Token Header 不能为空") |
|
21 |
private String tokenHeader = "Authorization"; |
|
22 |
/** |
|
23 |
* HTTP 请求时,访问令牌的请求参数 |
|
24 |
* |
|
25 |
* 初始目的:解决 WebSocket 无法通过 header 传参,只能通过 token 参数拼接 |
|
26 |
*/ |
|
27 |
@NotEmpty(message = "Token Parameter 不能为空") |
|
28 |
private String tokenParameter = "token"; |
|
29 |
|
|
30 |
/** |
|
31 |
* mock 模式的开关 |
|
32 |
*/ |
|
33 |
@NotNull(message = "mock 模式的开关不能为空") |
|
34 |
private Boolean mockEnable = false; |
|
35 |
/** |
|
36 |
* mock 模式的密钥 |
|
37 |
* 一定要配置密钥,保证安全性 |
|
38 |
*/ |
|
39 |
@NotEmpty(message = "mock 模式的密钥不能为空") // 这里设置了一个默认值,因为实际上只有 mockEnable 为 true 时才需要配置。 |
|
40 |
private String mockSecret = "test"; |
|
41 |
|
|
42 |
/** |
|
43 |
* 免登录的 URL 列表 |
|
44 |
*/ |
|
45 |
private List<String> permitAllUrls = Collections.emptyList(); |
|
46 |
|
|
47 |
/** |
|
48 |
* PasswordEncoder 加密复杂度,越高开销越大 |
|
49 |
*/ |
|
50 |
private Integer passwordEncoderLength = 4; |
|
51 |
} |