Skip to content

Commit 2a141b2

Browse files
Move implementation of addKey/removeKey methods to DataEncryptionKeyAccessor interface
1 parent 0d41e10 commit 2a141b2

File tree

3 files changed

+19
-22
lines changed

3 files changed

+19
-22
lines changed

spring-content-encryption/src/main/java/internal/org/springframework/content/encryption/keys/ContentPropertyDataEncryptionKeyAccessor.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package internal.org.springframework.content.encryption.keys;
22

3-
import java.util.ArrayList;
43
import java.util.Collection;
54
import lombok.RequiredArgsConstructor;
65
import org.springframework.beans.BeanWrapperImpl;
@@ -49,20 +48,4 @@ public S setKeys(S entity, ContentProperty contentProperty, Collection<T> newKey
4948
contentProperty.setCustomProperty(entity, customPropertyName, newValue);
5049
return entity;
5150
}
52-
53-
@Override
54-
public S addKey(S entity, ContentProperty contentProperty, T dataEncryptionKey) {
55-
var keys = new ArrayList<>(findKeys(entity, contentProperty));
56-
keys.remove(dataEncryptionKey);
57-
58-
return setKeys(entity, contentProperty, keys);
59-
}
60-
61-
@Override
62-
public S removeKey(S entity, ContentProperty contentProperty, T dataEncryptionKey) {
63-
var keys = new ArrayList<>(findKeys(entity, contentProperty));
64-
keys.add(dataEncryptionKey);
65-
66-
return setKeys(entity, contentProperty, keys);
67-
}
6851
}

spring-content-encryption/src/main/java/internal/org/springframework/content/fragments/ContentCryptoService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,12 @@ public S encrypt(S entity, PropertyPath propertyPath, InputStream plainText, BiF
5050
.map(wrapper -> wrapper.wrapEncryptionKey(encryptionParameters))
5151
.toList();
5252

53-
var newEntity = dataEncryptionKeyAccessor.setKeys(entity, contentProperty, encryptedDeks);
53+
5454
var encryptedStream = encryptionEngine.encrypt(plainText, encryptionParameters);
5555

56-
return contentSetter.apply(newEntity, encryptedStream);
56+
var newEntity = contentSetter.apply(entity, encryptedStream);
57+
58+
return dataEncryptionKeyAccessor.setKeys(newEntity, contentProperty, encryptedDeks);
5759
}
5860

5961
public Resource decrypt(S entity, PropertyPath propertyPath, GetResourceParams getResourceParams, Supplier<Resource> contentGetter) {
Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.springframework.content.encryption.keys;
22

3+
import java.util.ArrayList;
34
import java.util.Collection;
45
import java.util.List;
56
import org.springframework.content.commons.mappingcontext.ContentProperty;
@@ -10,12 +11,23 @@
1011
public interface DataEncryptionKeyAccessor<S, T extends StoredDataEncryptionKey> {
1112

1213
Collection<T> findKeys(S entity, ContentProperty contentProperty);
14+
S setKeys(S entity, ContentProperty contentProperty, Collection<T> dataEncryptionKeys);
1315

1416
default S clearKeys(S entity, ContentProperty contentProperty) {
1517
return setKeys(entity, contentProperty, List.of());
1618
}
1719

18-
S setKeys(S entity, ContentProperty contentProperty, Collection<T> dataEncryptionKeys);
19-
S addKey(S entity, ContentProperty contentProperty, T dataEncryptionKey);
20-
S removeKey(S entity, ContentProperty contentProperty, T dataEncryptionKey);
20+
default S addKey(S entity, ContentProperty contentProperty, T dataEncryptionKey) {
21+
var keys = new ArrayList<>(findKeys(entity, contentProperty));
22+
keys.remove(dataEncryptionKey);
23+
24+
return setKeys(entity, contentProperty, keys);
25+
}
26+
27+
default S removeKey(S entity, ContentProperty contentProperty, T dataEncryptionKey) {
28+
var keys = new ArrayList<>(findKeys(entity, contentProperty));
29+
keys.add(dataEncryptionKey);
30+
31+
return setKeys(entity, contentProperty, keys);
32+
}
2133
}

0 commit comments

Comments
 (0)