更新时间:2025-01-09 GMT+08:00
分享

使用指南

基础开发环境准备

安装的工具包括JDK、Maven、Eclipse和IDEA ,配置对应的环境变量,确保本地开发环境可用。

使用说明

  • 配置文件里的密钥,建议自行加密存储并实现解密逻辑。
  • 输入的密钥,建议按全随机数生成,长度32字节以上。

敏感数据加密

DevSporeSecurity集成Jasypt加解密组件,实现配置文件敏感数据自动加解密。

  1. 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>

  2. 配置masterkey,内容自行定义。

  3. 配置masterkey路径和需要加密的属性。

    #在需要加密的属性前添加(NeedEnc)前缀 
    test=(NeedEnc)123 
    devspore.security.provider.jasypt.masterkey-path=D:/devsporesecurity

  4. 配置masterkeypath的路径。

    masterkeypath的路径需要满足如下要求:
    • 路径必须为如下路径:
      ${devspore.security.provider.jasypt.masterkey.path}/masterkey
    • masterKey属于敏感数据,需服务自行控制好权限。
      如果在windows上运行,则在第一次启动时会自动将配置文件加密,加密后的内容如下所示。
      test=(NeedDec)EBl1iK4irrKDl4lj0g+pPg== 
      devspore.security.provider.jasypt.masterkey-path=D:/devsporesecurity

      可以看到test对应的属性已变为加密数据。

hibernate-validator参数校验

  1. 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>

  2. 校验使用。

    @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";
        }
    }

常用约束

表1 常用约束说明

注解

约束说明

@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。

@Email

被注释的元素必须是电子邮箱地址。

@Length(min=,max=)

被注释的字符串的大小必须在指定的范围内。

@NotEmpty

被注释的字符串的必须非空。

@Range(min=,max=,message=)

被注释的元素必须在合适的范围内。

相关文档