Skip to content

Commit 864a282

Browse files
committed
fix: prevent Jackson to serialize a getPolicies in the User class as Stream object
1 parent 3ae5bb8 commit 864a282

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

datashare-api/src/main/java/org/icij/datashare/user/User.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ public User(Map<String, Object> map) {
7878
(String)map.getOrDefault("provider", LOCAL),
7979
map, //details
8080
(String)map.get("jsonProjectKey"),
81-
(Set<UserPolicy>) map.get("policies"));
81+
(Set<UserPolicy>) Optional.ofNullable(map.get("policies"))
82+
.orElse(Collections.emptySet()));
8283
}
8384

8485
public User(User user) {
@@ -268,6 +269,7 @@ public Optional<UserPolicy> getPolicy(String projectId) {
268269
findFirst();
269270
}
270271

272+
@JsonIgnore
271273
public Stream<UserPolicy> getPolicies() {
272274
return policies.stream();
273275
}

datashare-app/src/test/java/org/icij/datashare/session/DatashareUserTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void test_serialize_deserialize() throws Exception {
1313
ObjectMapper objectMapper = new ObjectMapper();
1414

1515
String json = objectMapper.writeValueAsString(new DatashareUser(new User("id", "name", "email", "provider", "{\"key1\": \"value1\", \"key2\": \"value2\"}")));
16-
assertThat(json).contains("{\"id\":\"id\",\"name\":\"name\",\"email\":\"email\",\"provider\":\"provider\",\"policies\":[]}");
16+
assertThat(json).contains("{\"id\":\"id\",\"name\":\"name\",\"email\":\"email\",\"provider\":\"provider\"}");
1717

1818
assertThat(objectMapper.readValue(json, DatashareUser.class)).isNotNull();
1919
}

0 commit comments

Comments
 (0)