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

时间:2019-05-29 10:56:06

标签: amazon-web-services amazon-dynamodb dynamodb-queries

我正在使用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 配置[以及getter和setter]

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

public void setSomeProp(String someProp) {
    this.someProp = someProp;
}

这很好,我想lombok生成的getter和setter不能被AmazonEncryptionclient识别

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

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

1 个答案:

答案 0 :(得分:0)

我们必须使用lombok的onX功能。下面的代码解决了该问题

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