From 314dddafc71fbac7e504b18a89031ff3210bb1a8 Mon Sep 17 00:00:00 2001 From: Miika Nurminen Date: Thu, 23 Feb 2017 08:20:44 +0200 Subject: [PATCH] [DS-3463] Fix IP authentication for anonymous users Added group membership check based on context even if no eperson is found. Affects file downloads in (at least) xmlui. --- .../main/java/org/dspace/eperson/GroupServiceImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dspace-api/src/main/java/org/dspace/eperson/GroupServiceImpl.java b/dspace-api/src/main/java/org/dspace/eperson/GroupServiceImpl.java index 2a56b03600..d87e801521 100644 --- a/dspace-api/src/main/java/org/dspace/eperson/GroupServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/eperson/GroupServiceImpl.java @@ -185,6 +185,15 @@ public class GroupServiceImpl extends DSpaceObjectServiceImpl implements //lookup eperson in normal groups and subgroups return epersonInGroup(context, groupName, currentUser); } else { + // Check also for anonymous users if IP authentication used + List specialGroups = context.getSpecialGroups(); + if(CollectionUtils.isNotEmpty(specialGroups)) { + for(Group specialGroup : specialGroups){ + if (StringUtils.equals(specialGroup.getName(), groupName)) { + return true; + } + } + } return false; } }