将龙目岛注释与 DynamoDB 注释结合使用 [aws-dynamodb-encryption]



我正在使用AWS加密客户端。下面的代码抛出错误为

错误:@DoNotTouch不适用于字段

@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@Getter
@DynamoDBTable(tableName = "jktest")
public class DataPoJo {

    private String title;
    @DynamoDBHashKey(attributeName = "dummyname")
    private String dummyname;
    @DynamoDBAttribute(attributeName = "example")
    private String example;

    @DoNotEncrypt
    @DynamoDBAttribute(attributeName = "title")
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    @DoNotTouch
    @DynamoDBAttribute(attributeName="someProp")
    private String someProp;
}

但是,如果我给出@DoNotTouch配置如下[带有吸盘和设置器]

private String someProp;
@DoNotTouch
@DynamoDBAttribute(attributeName="someProp")
public String getSomeProp() {
    return someProp;
}
public void setSomeProp(String someProp) {
    this.someProp = someProp;
}

这工作正常。我猜龙目岛生成的 getter 和 setter 不被亚马逊加密客户端识别

我正在关注这个 aws 文档:https://aws.amazon.com/blogs/developer/client-side-encryption-for-amazon-dynamodb/

有没有人遇到过这个问题? 如何解决这个问题?

我们必须使用 lombok 的 onX 功能。

@Getter(onMethod = @_(@DoNotTouch))
 @DynamoDBAttribute(attributeName="someProp")
 private String someProp;

最新更新