使用指南
基础开发环境准备
安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。
使用说明
- 配置文件里的密钥,建议自行加密存储并实现解密逻辑。
- 输入的密钥,建议按全随机数生成,长度32字节以上。
敏感数据加密
DevSporeSecurity集成Jasypt加解密组件,实现配置文件敏感数据自动加解密。
- pom文件中添加如下依赖。
<dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId>devspore-security</artifactId> <version>${version}</version> </dependency> <!--或者--> <dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId>spring-boot-starter-huawei-devspore-security</artifactId> <version>${revision}</version> </dependency>
- 配置masterkey,内容自行定义。
- 配置masterkey路径和需要加密的属性。
#在需要加密的属性前添加(NeedEnc)前缀 test=(NeedEnc)123 devspore.security.provider.jasypt.masterkey-path=D:/devsporesecurity
- 配置masterkeypath的路径。
masterkeypath的路径需要满足如下要求:
hibernate-validator参数校验
- pom引入依赖。
<dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId>devspore-security</artifactId> <version>${version}</version> </dependency> <!--或者--> <dependency> <groupId>com.huaweicloud.devspore</groupId> <artifactId>spring-boot-starter-huawei-devspore-security</artifactId> <version>${com.huaweicloud.version}</version> </dependency>
- 校验使用。
@Data public class User { @NotBlank(message = "username is blank") private String username; @Pattern(regexp = "^1([34578])\\d{9}$", message = "incorrect mobile number format ") private String mobile; @NotNull(message = "age is blank") @Range(min = 5, max = 90, message = "age between 5 and 90") private Integer age; } @RestController @Validated public class DemoController { @RequestMapping("/demo1") public String testHandler1(@Past(message = "必须是过去的时间") Date date) { return "pass demo1"; } @PostMapping("/demo2") public String testHandler2(@RequestBody @Valid User user) { return "pass demo2"; } }
常用约束
注解 |
约束说明 |
---|---|
@Null |
被注释的元素必须为null。 |
@NotNull |
被注释的元素必须不为null。 |
@AssertTrue |
被注释的元素必须为true。 |
@AssertFalse |
被注释的元素必须为false。 |
@Min(value) |
被注释的元素必须是一个数字,其值必须大于等于指定的最小值。 |
@Max(value) |
被注释的元素必须是一个数字,其值必须小于等于指定的最大值。 |
@DecimalMin(value) |
被注释的元素必须是一个数字,其值必须大于等于指定的最小值。 |
@DecimalMax(value) |
被注释的元素必须是一个数字,其值必须小于等于指定的最大值。 |
@Size(max=, min=) |
被注释的元素的大小必须在指定的范围内。 |
@Digits (integer, fraction) |
被注释的元素必须是一个数字,其值必须在可接受的范围内。 |
@Past |
被注释的元素必须是一个过去的日期。 |
@Future |
被注释的元素必须是一个将来的日期。 |
@Pattern(regex=,flag=) |
被注释的元素必须符合指定的正则表达式。 |
@NotBlank(message =) |
验证字符串非null,且长度必须大于0。 |
|
被注释的元素必须是电子邮箱地址。 |
@Length(min=,max=) |
被注释的字符串的大小必须在指定的范围内。 |
@NotEmpty |
被注释的字符串的必须非空。 |
@Range(min=,max=,message=) |
被注释的元素必须在合适的范围内。 |