Revert "[CST-5669] Set orcid access token as hardcoded hidden metadata fields"

This reverts commit 4afa62a4c0.
This commit is contained in:
Luca Giamminonni
2022-05-16 15:44:28 +02:00
parent 3031dce00c
commit d82c6f9ee8
5 changed files with 26 additions and 94 deletions

View File

@@ -60,12 +60,6 @@ import org.springframework.beans.factory.annotation.Autowired;
public class MetadataExposureServiceImpl implements MetadataExposureService {
protected Logger log = org.apache.logging.log4j.LogManager.getLogger(MetadataExposureServiceImpl.class);
private final static Set<String> HARDCODED_HIDDEN_ELEMENTS = Set.of(
"dspace.orcid.access-token",
"dspace.orcid.refresh-token",
"eperson.orcid.access-token",
"eperson.orcid.refresh-token");
protected Map<String, Set<String>> hiddenElementSets = null;
protected Map<String, Map<String, Set<String>>> hiddenElementMaps = null;
@@ -138,38 +132,31 @@ public class MetadataExposureServiceImpl implements MetadataExposureService {
if (key.startsWith(CONFIG_PREFIX)) {
if (configurationService.getBooleanProperty(key, true)) {
String mdField = key.substring(CONFIG_PREFIX.length());
addHiddenElement(key, mdField);
String segment[] = mdField.split("\\.", 3);
// got schema.element.qualifier
if (segment.length == 3) {
Map<String, Set<String>> eltMap = hiddenElementMaps.get(segment[0]);
if (eltMap == null) {
eltMap = new HashMap<String, Set<String>>();
hiddenElementMaps.put(segment[0], eltMap);
}
if (!eltMap.containsKey(segment[1])) {
eltMap.put(segment[1], new HashSet<String>());
}
eltMap.get(segment[1]).add(segment[2]);
} else if (segment.length == 2) { // got schema.element
if (!hiddenElementSets.containsKey(segment[0])) {
hiddenElementSets.put(segment[0], new HashSet<String>());
}
hiddenElementSets.get(segment[0]).add(segment[1]);
} else { // oops..
log.warn("Bad format in hidden metadata directive, field=\"" + mdField + "\", " +
"config property=" + key);
}
}
}
}
HARDCODED_HIDDEN_ELEMENTS.forEach(element -> addHiddenElement(element, element));
}
}
private void addHiddenElement(String key, String mdField) {
String segment[] = mdField.split("\\.", 3);
// got schema.element.qualifier
if (segment.length == 3) {
Map<String, Set<String>> eltMap = hiddenElementMaps.get(segment[0]);
if (eltMap == null) {
eltMap = new HashMap<String, Set<String>>();
hiddenElementMaps.put(segment[0], eltMap);
}
if (!eltMap.containsKey(segment[1])) {
eltMap.put(segment[1], new HashSet<String>());
}
eltMap.get(segment[1]).add(segment[2]);
} else if (segment.length == 2) { // got schema.element
if (!hiddenElementSets.containsKey(segment[0])) {
hiddenElementSets.put(segment[0], new HashSet<String>());
}
hiddenElementSets.get(segment[0]).add(segment[1]);
} else { // oops..
log.warn("Bad format in hidden metadata directive, field=\"" + mdField + "\", " +
"config property=" + key);
}
}
}

View File

@@ -158,14 +158,6 @@ public class ItemBuilder extends AbstractDSpaceObjectBuilder<Item> {
return addMetadataValue(item, "dspace", "object", "owner", null, value, authority, CF_ACCEPTED);
}
public ItemBuilder withOrcidAccessToken(String accessToken) {
return addMetadataValue(item, "dspace", "orcid", "access-token", accessToken);
}
public ItemBuilder withOrcidRefreshToken(String refreshToken) {
return addMetadataValue(item, "dspace", "orcid", "refresh-token", refreshToken);
}
public ItemBuilder makeUnDiscoverable() {
item.setDiscoverable(false);
return this;

View File

@@ -3129,27 +3129,4 @@ public class EPersonRestRepositoryIT extends AbstractControllerIntegrationTest {
}
@Test
public void hiddenOrcidMetadataFieldsTest() throws Exception {
context.turnOffAuthorisationSystem();
EPerson ePerson = EPersonBuilder.createEPerson(context)
.withEmail("test@user.it")
.withPassword(password)
.withNameInMetadata("Test", "User")
.withOrcidAccessToken("23bc2f69-b7c7-4e55-9dc4-d4e09382f687")
.withOrcidRefreshToken("a6c6dbdc-41b3-4e86-8aaf-2ac50253dc74")
.build();
context.restoreAuthSystemState();
String authToken = getAuthToken(ePerson.getEmail(), password);
getClient(authToken).perform(get("/api/eperson/epersons/{uuid}", ePerson.getID()))
.andExpect(status().isOk())
.andExpect(jsonPath("$.metadata.['eperson.orcid.access-token']").doesNotExist())
.andExpect(jsonPath("$.metadata.['eperson.orcid.refresh-token']").doesNotExist());
}
}

View File

@@ -4414,32 +4414,4 @@ public class ItemRestRepositoryIT extends AbstractControllerIntegrationTest {
.andExpect(jsonPath("$.status", notNullValue()));
}
@Test
public void hiddenOrcidMetadataFieldsTest() throws Exception {
context.turnOffAuthorisationSystem();
parentCommunity = CommunityBuilder.createCommunity(context)
.withName("Parent Community")
.build();
Collection owningCollection = CollectionBuilder.createCollection(context, parentCommunity)
.withName("Owning Collection")
.build();
Item item = ItemBuilder.createItem(context, owningCollection)
.withTitle("Test item")
.withOrcidAccessToken("23bc2f69-b7c7-4e55-9dc4-d4e09382f687")
.withOrcidRefreshToken("a6c6dbdc-41b3-4e86-8aaf-2ac50253dc74")
.build();
context.restoreAuthSystemState();
getClient().perform(get("/api/core/items/{uuid}", item.getID()))
.andExpect(status().isOk())
.andExpect(jsonPath("$.metadata.['dspace.orcid.access-token']").doesNotExist())
.andExpect(jsonPath("$.metadata.['dspace.orcid.refresh-token']").doesNotExist());
}
}

View File

@@ -928,6 +928,10 @@ webui.licence_bundle.show = false
# since that usually contains email addresses which ought to be kept
# private and is mainly of interest to administrators:
metadata.hide.dc.description.provenance = true
metadata.hide.dspace.orcid.access-token = true
metadata.hide.dspace.orcid.refresh-token = true
metadata.hide.eperson.orcid.access-token = true
metadata.hide.eperson.orcid.refresh-token = true
##### Settings for Submission Process #####