我正在使用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;